r/jailbreak • u/Ultraztechie69 • 2h ago
Discussion An exploit on 27.0.1 is possible.
I have spent the last few days on entirely patch diffing and analysing iOS 27.0.1 alongside 27.2 which patched it. The 27.2 release is actually helpful because along with it came all the CVE vulnerabilities Calif used. I also found an SPTM vulnerability but it isn't usable yet as it needs kernel Read write access. ETA SON?
Chain Summary
WebKit RCE → GPU Process Sandbox Escape → Kernel UAF (IOKit/IOSurface) → SPTM UAT Race (EL2)
---
- WebKit RCE (Initial Foothold)
- Location: JavaScriptCore / WebKit (among 120+ CVEs in 27.2 security content)
- Status: Exact CVE not isolated due to recompilation noise; diff shows minor bounds checks added
- Impact: Code execution in WebContent process (sandboxed)
---
- GPU Process Sandbox Escape
- GPU Profile: Allows selector 10 on IOSurfaceRootUserClient (confirmed via sandbox profile diff - IDENTICAL between versions)
- GPU Process Entitlements:
- com.apple.private.gpu.device
- com.apple.private.allow-gpu-replay
- com.apple.private.allow-gpu-hang-recovery
- NO com.apple.security.exception.iokit-user-client-class
- WebContentExtension: Has BlockIOKitInWebContentSandbox - explicitly blocked
- Gap: GPU process lacks IOKit entitlement but may bypass via com.apple.private.gpu.device entitlement for GPU-related user clients (IOMobileGraphics, AGX)
---
- Kernel r/W via UAF (CRITICAL FINDING)
┌──────────────────────────────┬───────────────────────────────────────────────────────────────────┬─────────────────────────────────────────────────────┐
│ Aspect │ 27.0.1 (Vulnerable) │ 27.2 (Patched) │
├──────────────────────────────┼───────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────┤
│ UAF Function │ 0xfffffff00a78fc80 (480 bytes) │ 0xfffffff00a7d7f40 (2,504 bytes, +2,024 bytes) │
├──────────────────────────────┼───────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────┤
│ Reverse Paths (UAF→IOKit) │ 27 paths │ 1 path │
├──────────────────────────────┼───────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────┤
│ Forward Paths (IOKit→UAF) │ 1 path via 0xfffffff00aeb2db8 (IOUserClient externalMethod) │ 1 path via 0xfffffff00aefec80 (different, depth 12) │
├──────────────────────────────┼───────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────┤
│ IOSurfaceRootUserClient Path │ ✅ Reachable (0xfffffff00ae78540 has "com.apple.iokit.IOSurface") │ ❌ SEVERED │
├──────────────────────────────┼───────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────┤
│ RootDomainUserClient │ Reachable │ Not reachable │
├──────────────────────────────┼───────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────┤
│ DriverKit Clients │ Reachable │ Not reachable │
└──────────────────────────────┴───────────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────┘
The Patch:
- Added extensive bounds checking to UAF function (+2,024 bytes)
- Severed the call chain from IOSurfaceRootUserClient to the UAF
- Only a generic IOService path remains (not userland-triggerable)
UAF Details:
- Leaf function (no BL/BLR calls)
- Called via PAC-authenticated indirect calls (BLR/BLRAA)
- Likely one of: CVE-2024-65350, CVE-2024-112514, CVE-2024-112517
- Reachable from userland via IOConnectCallMethod on IOSurfaceRootUserClient
---
- SPTM UAT Race (EL2 Compromise)
- Target: TLB-invalidation race in sapt_update_permissions_uat_unmap_sync / map_sync
- Trigger: GENTER instruction (0x00201420) targeting UAT endpoints
- SPTM Mutation Cluster: 3 guarded functions + 5 helpers (cluster_calls ≥ 3/5)
- GENTER Dispatch Surface: 171 sites, 10 tables, 14 UAT endpoints mapped
- Firmware Patch (27.0.1→27.2): 24 DMB ISH/ISHST, PAC/AUT, AT S1E1R/W concentrated in FUNC_B
---
Reachability from Normal App Process
YES - The UAF is reachable from a normal app:
Normal apps CAN access IOSurfaceRootUserClient (no special entitlement)
In 27.0.1: IOConnectCallMethod → IOSurfaceRootUserClient → IOUserClient::externalMethod → UAF
This gives kernel read/write primitive
What I used as a base for all my research - https://github.com/IvanIVGrozny/iOS27.0.1-SPTM-Research/


