
Exploitation framework for CVE-2026-86950, a CoreGraphics integer overflow: crafts malicious TrueType fonts and PDFs, extracts ASLR leaks, and builds ARM64 ROP chains.
Exploitation framework for CVE-2026-86950, a critical integer overflow in Apple's CoreGraphics anti-aliasing rasterizer affecting iOS 26.7 and macOS 26.7.
Integer overflow in aa_double_to_fixed() during font rendering triggers out-of-bounds heap write via corrupted bounding box calculations. Exploitable through malicious TrueType fonts in PDFs.
exploit_full.py — macOS exploit generator (font + PDF + ROP chain)exploit_ios.py — iOS variant (reduced complexity, 5-level scaling)leak_extractor.py — Parse crash dumps, ASLR bypass calculationrop_builder.py — ARM64 ROP gadget chain constructionCVE-2026-86950_ArXiv.pdf — Full technical paper (20 pages, peer-ready)exploit.ttf / ios_exploit.ttf — Malicious fonts (composite glyph chaining)exploit.pdf / ios_exploit.pdf — Trigger PDFs with embedded fontscve_2026_86950_payload.bin — ARM64 ROP chain binaryACADEMIC_PAPER.md — Markdown source of research paperATTRIBUTION.md — Author credits and referencesQUICK_START.txt — 5-minute setup guideMakefile — Build configurationrun_exploit.sh — Automated 6-stage pipelinepython3 exploit_full.py .
# Outputs: exploit.ttf, exploit.pdf, Makefile
python3 exploit_ios.py .
# Outputs: ios_exploit.ttf, ios_exploit.pdf, ios_payload.bin
python3 leak_extractor.py crash.log
# Parse lldb output, calculate library bases
python3 rop_builder.py 0x0000000192200000
# Generate: cve_2026_86950_payload.bin
make -C . all
make -C . run # Requires lldb debugger
CGImageSourceCreateThumbnailAtIndex() → crash with OOB writeStages 4-6 require real gadget discovery via Ghidra/IDA Pro on CoreGraphics binaries.
int32_t aa_double_to_fixed(double px) {
double v = 0.5 + 4096.0 * px; // No overflow check
return (int32_t)v; // Cast overflow
}
Overflow when px > 524,288 pixels. ARM64 differential: FCVTZS saturates to INT32_MAX, but vector XTN truncates → bounding box inversion → undersized heap allocation.
aa_double_to_fixed() overflow in rendering pipeline| macOS | iOS | |
|---|---|---|
| Delivery | Direct PDF | PDF attachment (Messages/WhatsApp) |
| Process | Preview.app | ImageIO daemon (sandboxed) |
| Scaling Levels | 7 | 5 (memory limit) |
| Privilege | User | Daemon (sandbox escape needed) |
✅ Covers:
⚠️ Requires external research:
Research provided for:
Unauthorized exploitation is illegal.
Author: 34zY
Date: October 2026
Status: Patched, educational framework
Disclaimer: This project is for authorized security testing only. Unauthorized access to computer systems is illegal.