Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-65343-e7eb2ed — 针对 CVE-2026-65343 的 PoC,这是一个 iOS 26.6 上的 AppleKeyStore 内核越界读取漏洞,可通过 DYLD_INTERPOSE ACM 句柄捕获,从沙盒应用泄露内核指针以绕过 KASLR。 | Kitploit
工具/GitHubGitHub/hidayat-tanjung/cve-2026-65343-e7eb2ed
iOS安全内存取证漏洞分析漏洞利用移动应用渗透测试逆向工程移动安全论文与研究二进制利用

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHubhidayat-tanjung/cve-2026-65343-e7eb2ed

CVE-2026-65343-e7eb2ed

针对 CVE-2026-65343 的 PoC,这是一个 iOS 26.6 上的 AppleKeyStore 内核越界读取漏洞,可通过 DYLD_INTERPOSE ACM 句柄捕获,从沙盒应用泄露内核指针以绕过 KASLR。

查看仓库
16小时59分前尚未审核

CVE-2026-65343 — AppleKeyStore 越界读取(KASLR 绕过)

组件: AppleKeyStore 内核扩展 — _LibSer_SEPControl_Deserialize
受影响: iOS / iPadOS 26.6 (23G71) 及更早版本
修复于: iOS / iPadOS 26.6.1 (23G83)
类型: SEP 控制消息反序列化中的越界读取
影响: 内核指针泄露 → 从沙盒内、无权限的进程实现 KASLR 绕过(通过 DYLD_INTERPOSE 捕获 ACM 句柄)


致谢

发现者:Drinor Selmanaj(Sentry)、Surya Narayan Kushwaha
(依据 Apple 安全公告 — iOS 26.6.1)


根本原因

AppleKeyStore 内核扩展中的 _LibSer_SEPControl_Deserialize 通过 copyout() 将一个来自 ACM(凭据管理器)消息缓冲区的 (payload_ptr, declared_length) 对发布到用户空间,而未验证 declared_length ≤ remaining。

通过提供 declared_length = 0x800,驱动程序会复制约 0x7E8 字节,超出内核 ACM 消息缓冲区末尾——读取到相邻的内核堆分配中。这些相邻区域包含内核指针(0xfffffff0xxxxxxxx),可用于计算 KASLR 偏移。

root@kitploit:~
; _LibSer_SEPControl_Deserialize (受影响路径, 26.6 / 23G71)
ldr  w2, [acm_msg + declared_length_offset]  ; 用户可控的 0x800
; 无检查: w2 <= (acm_msg_end - payload_ptr) ← 缺失
bl   copyout                                  ; 将 w2 字节复制到用户空间

ACM 句柄捕获(DYLD_INTERPOSE)

直接调用 IOServiceOpen("AppleKeyStore") 会被沙盒阻止,无法用于侧载应用。然而,Security.framework 的安全隔区密钥签名路径会在进程内使用真实的 ACM 会话句柄调用 IOConnectCallMethod。

PoC 使用 __DATA,__interpose 钩子(该钩子在 dyld 加载时运行,早于 __DATA_CONST 被设为只读——在 iOS 26 上,fishhook 因 DATA_CONST 保护而被阻止):

  1. 启用 interpose 捕获标志
  2. SecKeyCreateRandomKey(kSecAttrTokenIDSecureEnclave) → SecKeyCreateSignature() → 进程内 IOConnectCallMethod 以真实 ACM 句柄触发
  3. 捕获 (conn, handle[16])
  4. 以 declared_length = 0x800 在 163 个 AKS 选择器上重放
  5. 扫描输出中的 0xfffffff0xxxxxxxx 内核指针 → 计算 KASLR 偏移

PoC 行为

poc_aks_oob.m 实现了完整的 ACM 句柄捕获和越界探测链:

  • 创建安全隔区 P-256 密钥(kSecAttrAccessibleAfterFirstUnlock,无生物识别)
  • 对 32 字节消息签名以触发进程内 AKS IOKit 调用
  • 以 declared_length = 0x800 在所有 163 个 AKS 选择器上重放
  • 打印在 KPTR @+XXXX = 0xfffffff0YYYYYYYY 处发现的任何内核指针
  • 尝试从已知 AKS 符号偏移计算 KASLR 偏移

如果 SE 密钥签名通过 secd XPC 而非进程内路由,则回退探测使用零句柄(确认越界路径可达;所有选择器将无法通过 ACM 验证,但 VNOP 路径已确认)。


iOS 26 注意事项:fishhook 被阻止

在 iOS 26 上,__DATA_CONST(包含 GOT)在任何进程内代码运行之前就被映射为只读。运行时 GOT 写入(如 fishhook 所用)会触发 KERN_PROTECTION_FAILURE → SIGBUS。通过 __DATA,__interpose 的 DYLD_INTERPOSE 之所以有效,是因为 dyld 在镜像加载时处理 interpose 表,早于内核强制执行 __DATA_CONST 保护。


要求

  • iOS 26.6 (23G71) 或更早版本
  • 安全隔区访问权限(kSecAttrTokenIDSecureEnclave)——任何侧载应用无需权限即可使用
  • 无需沙盒逃逸:AKS IOKit 调用通过 Security.framework 在进程内进行

构建

root@kitploit:~
# Xcode 项目 — 链接 Security.framework 和 Foundation.framework
clang -arch arm64 \
      -isysroot $(xcrun --sdk iphoneos --show-sdk-path) \
      -framework Security -framework Foundation \
      -o poc poc/poc_aks_oob.m

codesign -s "Apple Development" --entitlements ent.plist poc

最低权限(ent.plist):

root@kitploit:~
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
    <key>keychain-access-groups</key>
    <array><string>$(AppIdentifierPrefix)com.research.poc65343</string></array>
</dict></plist>

时间线

日期事件
2026-08-17iOS 26.6.1 发布并修复
2026-08-17Apple 在安全公告中发布致谢

参考

  • Apple 安全公告 — iOS 26.6.1

CVE-2026-65343-e7eb2ed

下载工具