Cyber Risks · Google Project Zero

Race you to the kernel!

Summary: Ian Beer of Google Project Zero described a race condition in the OS X and iOS kernel's setuid root binary loading: the kernel swaps the new virtual memory map pointer into the old task object before invalidating the old task port, leaving a window to manipulate the memory of an euid 0 process. Beer reported the bug to Apple on December 16th 2015 and it was patched in OS X 10.11.4/iOS 9.3 as CVE-2016-1757.

Bottom line: The window between the vm_map swap and task port invalidation was long enough to sneak in Mach MIG calls, letting an attacker overwrite a setuid binary's text segment and, on OS X, load an unsigned kernel extension by gaining the com.apple.rootless.kext-management entitlement.

Read the original at Google Project Zero ↗

Topics
Vulnerabilities & Patching
Mentions
CVE-2016-1757
Related