Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-65330 — Proof-of-concept for a fixed PAC diversifier bypass in the tmpfs setxattr handler on iOS 26.6, demonstrating reachability of the vulnerable signing path from userspace. | Kitploit
도구/GitHubGitHub/bytev0rtex/cve-2026-65330
Privilege EscalationiOS SecurityVulnerability AnalysisExploitationReverse EngineeringMobile SecurityBinary Exploitation
GitHubbytev0rtex/cve-2026-65330

CVE-2026-65330

Proof-of-concept for a fixed PAC diversifier bypass in the tmpfs setxattr handler on iOS 26.6, demonstrating reachability of the vulnerable signing path from userspace.

저장소 보기
52020일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
요청한 언어로 콘텐츠를 사용할 수 없습니다. 영어 버전을 표시합니다.

CVE-2026-65330 — tmpfs setxattr PAC Bypass

Component: XNU VFS — default_setxattr_doubleagent (tmpfs VNOP)
Affected: iOS / iPadOS 26.6 (23G71) and earlier
Fixed in: iOS / iPadOS 26.6.1 (23G83)
Type: Fixed PAC diversifier in xattr handler pointer signing
Impact: PC control from kernel context; full privilege escalation when combined with a kernel write primitive


Credits

Discovered by: Bhaswanth Chigurupati, Billy Jheng Bing Jhong, Pan Zhenpeng (@Peterpan0927) of STAR Labs SG Pte. Ltd.
(per Apple Security Advisory — iOS 26.6.1)


Root Cause

default_setxattr_doubleagent, the VNOP xattr handler for the tmpfs filesystem, signs the xattr handler function pointer using a fixed, compile-time constant PAC diversifier: #0x307a.

root@kitploit:~
; XNU kernel — default_setxattr_doubleagent (decompiled)
handler_ptr = vnode_operations[VNOP_SETXATTR_SLOT];   // read from vnop table
signed_ptr  = PACDA(handler_ptr, 0x307a);             // sign with FIXED diversifier
... call AUTDA(signed_ptr, 0x307a) → BLR             // authenticate and branch

Because the diversifier is fixed and publicly known, an attacker with a kernel write primitive can:

  1. Forge a PAC-signed pointer to an arbitrary kernel address:
    forged = PACIA(shellcode_addr, 0x307a)
  2. Write forged into the appropriate slot of the target vnode's vnode_operations table.
  3. Call setxattr() on any file on the tmpfs mount → kernel executes shellcode_addr.

Exploit Chain Role

In the iOS 26.6 kernel privilege escalation chain:

root@kitploit:~
CVE-2026-64788 (IOGPUFamily UAF)  →  kernel r/w primitive
CVE-2026-65330 (this bug)         →  PC control → root (uid=0)

The sign_ptr primitive (PACIA with diversifier #0x307a) is implemented in the jailbreak POC using inline ARM64e assembly. The kernel r/w primitive is used to:

  1. Locate the target vnode's v_op pointer.
  2. Write the forged PAC pointer into vnode_operations[VNOP_SETXATTR_SLOT].
  3. Trigger execution via setxattr("/tmp/trigger", ...).

PoC Behaviour

The standalone PoC (poc_pac_bypass.c) exercises the vulnerable VNOP path:

  • Creates a test file at /private/tmp/poc65330_xattr_test (tmpfs — required to hit default_setxattr_doubleagent)
  • Calls setxattr() with XATTR_NAME="com.apple.poc.cve65330.test" → hits default_setxattr_doubleagent
  • Runs a 10-iteration stress pass to confirm the VNOP is exercised repeatedly
  • Calls removexattr() to hit the cleanup path
  • Cleans up the test file

The PoC does not forge a PAC pointer or overwrite any kernel data — it only demonstrates that the vulnerable #0x307a signing path is reachable from userspace via a normal setxattr() syscall.


Requirements

  • iOS 26.6 (23G71) or earlier
  • /private/tmp write access (world-writable tmpfs; no special entitlements required)
  • The file must be on a tmpfs mount — default_setxattr_doubleagent is the VFS fallback handler for filesystems without native xattr support (tmpfs, FAT). APFS handles xattrs natively and bypasses this code path entirely.
  • Kernel write primitive required for full PC-control exploitation

Build

root@kitploit:~
# Standalone C binary (no frameworks needed)
clang -arch arm64 -o poc poc/poc_pac_bypass.c

# For on-device (with signing):
clang -arch arm64 -isysroot $(xcrun --sdk iphoneos --show-sdk-path) \
      -o poc poc/poc_pac_bypass.c
codesign -s "Apple Development" poc

Diversifier Verification

The fixed diversifier 0x307a was verified from disassembly of the 26.6 (23G71) kernelcache:

root@kitploit:~
; default_setxattr_doubleagent + 0x?? (approximate)
MOVZ  x1, #0x307a          ; diversifier constant
PACIA x0, x1               ; sign handler pointer (instruction key A)

The corresponding AUTIA x0, x1 at the call site uses the same constant, confirming that any PACIA-forged pointer with diversifier 0x307a authenticates successfully.


Timeline

DateEvent
2026-08-17iOS 26.6.1 released with fix
2026-08-17Apple credits published in security advisory

References

  • Apple Security Advisory — iOS 26.6.1
도구 다운로드