Apple’s Memory Integrity Enforcement is no joke. Five years of design, brand-new M5 silicon, hardware memory tagging on the kernel heap, hardware-locked read-only zones for the kernel’s crown jewels, and a privileged monitor sitting above the kernel that refuses every unauthorised page-table change. It’s the most serious kernel memory-safety stack any consumer OS has shipped. And it still got bypassed. A three-person shop with an AI sidekick walked through it in five days, with two bugs and a clever idea. Here’s my rundown of how they achieved it, no PhD required. Skip ahead if you want: Almost every “your iPhone got hacked” story you’ve ever read comes back to the same root cause: a memory bug. A pointer that pointed at the wrong thing. A buffer that wrote one byte too many. A struct that got reused after it was supposed to be freed. It’s not the user clicking a sketchy link. It’s not a stolen password. It’s the kernel reading from a piece of memory and trusting it just a little too much. Pegasus, the NSO Group spyware that ended up on journalists and activists worldwide? Memory bug. The WebKit zero-clicks used in targeted operations all through the 2020s? Memory bugs. The checkm8 jailbreak that owned every iPhone from the 5s through the X? Memory bug. TheT2 vulnerability I wrote about a few years ago? Same family. Google’s Project Zero has been counting these for years. Roughly70%of high-severity vulnerabilities across all major software products are memory-safety bugs. Microsoft counted theirs and got the same number. Chrome did, Firefox did, Apple did. The whole industry agrees: this istheproblem. So what does an attacker actually do with a memory bug? In the worst case, anything they want. The kernel is the program that runs every other program. If you can corrupt the kernel’s memory, you can rewrite the table that says “this process is allowed to read your photos”, or “this user is uid=501”. You can install something that survives a reboot. You can read every message the device has ever sent. You can flip the camera on without the LED. The phone you bought to keep your life private is now someone else’s diary of your life. This is why Apple, Microsoft, Google and the chip vendors have been pouring engineering at hardware-level memory safety for a decade. Compiler hardening, safer allocators, sandboxing: they all help, but they’re a leaky bucket. The bugs keep coming. The thing that actually works is making the bugsunexploitableeven when they exist. Stop trusting the software to be correct; build the hardware to refuse incorrect operations. That’s the bet MIE is making. If you’ve followed Apple’s security marketing in the last year, you’ve heard MIE described as a “generational leap”. It’s three pieces, stacked. Memory tagging (EMTE).Every chunk of memory the kernel hands out gets a hidden label, a tag. The pointer you use to reach that chunk has the same tag baked into its upper bits, where it doesn’t change the address. On every access, the CPU checks: does the pointer’s tag match the memory’s tag? If not, your process dies on the spot. Apple’s version issynchronous, which means the check fires on the access itself, not later. You can’t guess tags by probing because the first wrong guess kills you. Read-only zones.Some kernel structures are so juicy they get extra protection. Things likeucred(your process’s user ID), the Mach task control block, the sandbox table, the codesigning state. They live in a special region where the page tables themselves mark the pages as unwritable. Even ring-0 kernel code can’t touch them. The hardware MMU refuses. One door in.Exactly one kernel function is allowed to mutate read-only-zone pages:_zalloc_ro_mut. It briefly marks a page writable, does its write, marks it unwritable again. A higher-privileged thing called the Secure Page Table Monitor watches every page-table change and refuses if anyone else tries. From the kernel’s own perspective, “only_zalloc_ro_mutwrites here” is unbreakable. Stack those three together and you get MIE. Most kernel memory is tag-protected. The crown jewels are page-table-protected behind one audited writer. Pretty good design, honestly. On11 May 2026Apple shipped macOS Tahoe 26.5. Buried inthe security noteswas a one-liner: Kernel.Available for Mac computers with Apple Silicon. An app may be able to cause unexpected system termination. Credit: Calif.io in collaboration with Claude and Anthropic Research. CVE-2026-28952. “Unexpected system termination” sounds like a crash bug. It is not. Three days later Calif publishedtheir disclosure: the first public macOS kernel exploit on an M5 with MIE enabled. Unprivileged local user, only public syscalls, root shell. Five days from “no bugs in hand” to working exploit. They used Anthropic’s restricted Mythos Preview model throughout. Apple’s patch istwo instructions long. Two. Those two instructions tell the whole story. Let me show you. If you read arm64 assembly, here’s the whole fix at a glanc...
The article describes a kernel-level memory safety vulnerability (CVE-2026-28952, CVSS 7.5) that bypasses Apple's Memory Integrity Enforcement (MIE) through a combination of two bugs and a novel exploitation technique. Affected versions include iPadOS/iOS prior to 18.7.9, macOS 14.x prior to 14.8.7, macOS 15.x prior to 15.7.7, and macOS 26.x prior to 26.5. The fix requires updating to iPadOS/iOS 18.7.9, macOS 14.8.7, macOS 15.7.7, or macOS 26.5, respectively.