I read the entire thing, and honestly the heap grooming is very interesting, but really that's the boring part -- lots of trial and error, padding memory, etc. Also interesting that linked-lists aren't used by Apple† (and Ian Beer's suggestion that they <i>ought</i> to use them), but that's neither here nor there. Getting kernel memory read/write is also very interesting, albeit (again) a bit tedious. At the end of the day, it all started with this:<p>> Using two MacOS laptops and enabling AirDrop on both of them I used a kernel debugger to edit the SyncTree TLV sent by one of the laptops, which caused the other one to kernel panic due to an out-of-bounds memmove.<p>How did this even pass the _smell_ test? How did it get through code reviews and auditing? You're <i>allocating</i> from an <i>untrusted source</i>. It's like memory management 101. I mean, my goodness, it's from a <i>wireless</i> source, at that.<p>† In this specific scenario, namely the list of `IO80211AWDLPeer`s.