GenericCoding/pois0nSword
GitHub: GenericCoding/pois0nSword
该项目演示了如何在 iOS 26.1 上利用 CVE-2025-43529 实现任意内存读写原语,并探索后续的 PAC 绕过与沙箱逃逸路径。
Stars: 14 | Forks: 4
# posi0nSword
由 GenericCoding 编写,@zeroxjf 对修复 webkit 读/写做出了重大贡献。
这是一个在 iOS 26.1 上利用 cve-2025-43529 实现任意读写漏洞的演示。
- [x] R/W 原语
- [x] WIP 分支中禁用 GC
- [x] WIP 分支中覆盖 JitAllowList
大部分代码来自 jir4vv1t 编写的 cve-2025-43529 POC 以及 darksword 的 web 实现。(https://github.com/ghh-jb/DarkSword/)
# 分析文章
本仓库利用 Darksword 的 scribble 方法,在引导 addrof 和 fakeobj 原语之后,于 iOS 26.1 上获取了读/写64原语,随后在获取 heap 和 VM 地址之后,利用 write8 禁用了垃圾回收(参见 WIP 分支)。
Darksword *确实具备* PAC bypass,它依赖于两点:
1. 针对应手机及系统版本的 offsets。
2. 仅凭初始 fakeobj 和 addrof 获取的 R/W 原语。
我们目前缺少 offsets,一旦获取,便可通过打开 send / receive 端口,利用 ANGLE-OOB 实现沙箱逃逸。
关于相关的 ANGLE-OOB bug:在 @zeroxjf 的分析仓库中提到的 OOB,*确实*与本项目相关,且*曾*在 DarkSword 中被使用,然而它是在利用读写功能和 offsets 打开 IPC 端口*之后*才使用的,并且需要 PAC bypass。这也解释了为什么 @zeroxjf 无法完整验证该 OOB;如果在 OOB 和 IPC 端口之间没有传输消息的方法,这个 OOB 对我们来说毫无用处。
# 未来构想与贡献邀请
- [ ] PAC bypass / offsets
- [ ] Angle-OOB 沙箱逃逸
标签:iOS, PAC绕过, UML, WebKit, Web报告查看器, 后端开发, 数据可视化, 沙箱逃逸