针对 CVE-2026-86950(CoreGraphics 整数溢出漏洞)的利用框架:构造恶意 TrueType 字体和 PDF,提取 ASLR 泄漏,并构建 ARM64 ROP 链。
针对 CVE-2026-86950 的漏洞利用框架。该漏洞是 Apple CoreGraphics 抗锯齿光栅化器中的一个严重整数溢出漏洞,影响 iOS 26.7 和 macOS 26.7。
字体渲染期间,aa_double_to_fixed() 中的整数溢出会通过损坏的边界框计算触发堆越界写入。可通过 PDF 中的恶意 TrueType 字体加以利用。
exploit_full.py — macOS 漏洞利用生成器(字体 + PDF + ROP 链)exploit_ios.py — iOS 变体(复杂度降低,5 级缩放)leak_extractor.py — 解析崩溃转储,计算 ASLR 绕过rop_builder.py — ARM64 ROP gadget 链构建CVE-2026-86950_ArXiv.pdf — 完整技术论文(20 页,可供同行评审)exploit.ttf / ios_exploit.ttf — 恶意字体(复合字形链式构造)exploit.pdf / ios_exploit.pdf — 内嵌字体的触发 PDFcve_2026_86950_payload.bin — ARM64 ROP 链二进制文件ACADEMIC_PAPER.md — 研究论文的 Markdown 源文件ATTRIBUTION.md — 作者署名与参考文献QUICK_START.txt — 5 分钟快速上手指南Makefile — 构建配置run_exploit.sh — 自动化 6 阶段流水线python3 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() → 因越界写入而崩溃阶段 4-6 需要通过 Ghidra/IDA Pro 在 CoreGraphics 二进制文件上进行真实的 gadget 发现。
int32_t aa_double_to_fixed(double px) {
double v = 0.5 + 4096.0 * px; // No overflow check
return (int32_t)v; // Cast overflow
}
当 px > 524,288 像素时发生溢出。ARM64 差异:FCVTZS 饱和至 INT32_MAX,但向量 XTN 会截断 → 边界框反转 → 堆分配过小。
aa_double_to_fixed() 溢出| macOS | iOS | |
|---|---|---|
| 投递方式 | 直接 PDF | PDF 附件(Messages/WhatsApp) |
| 进程 | Preview.app | ImageIO 守护进程(沙盒化) |
| 缩放层级 | 7 | 5(内存限制) |
| 权限 | 用户 | 守护进程(需要沙盒逃逸) |
✅ 涵盖:
⚠️ 需要外部研究:
本研究提供用于:
未经授权的利用是违法的。
作者: 34zY
日期: 2026 年 10 月
状态: 已修补,教育框架
免责声明: 本项目仅用于授权的安全测试。未经授权访问计算机系统是违法的。