## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-BYTEV0RTEX-CVE-2026-65330
# CVE-2026-65330 โ tmpfs setxattr PAC ์ฐํ
**๊ตฌ์ฑ ์์:** XNU VFS โ `default_setxattr_doubleagent` (tmpfs VNOP)
**์ํฅ:** iOS / iPadOS 26.6 (23G71) ๋ฐ ์ด์ ๋ฒ์
**์์ ๋ฒ์ :** iOS / iPadOS 26.6.1 (23G83)
**์ ํ:** xattr ํธ๋ค๋ฌ ํฌ์ธํฐ ์๋ช
์ ๊ณ ์ PAC diversifier
**์ํฅ:** ์ปค๋ ์ปจํ
์คํธ์์ PC ์ ์ด; ์ปค๋ ์ฐ๊ธฐ ํ๋ฆฌ๋ฏธํฐ๋ธ์ ๊ฒฐํฉ ์ ์ ์ฒด ๊ถํ ์์น
* * *
## ํฌ๋ ๋ง
๋ฐ๊ฒฌ์: **Bhaswanth Chigurupati** , **Billy Jheng Bing Jhong** , **Pan Zhenpeng (@Peterpan0927)** โ STAR Labs SG Pte. Ltd.
(Apple ๋ณด์ ๊ถ๊ณ โ iOS 26.6.1 ์ฐธ์กฐ)
* * *
## ๊ทผ๋ณธ ์์ธ
`default_setxattr_doubleagent`๋ tmpfs ํ์ผ์์คํ
์ VNOP xattr ํธ๋ค๋ฌ๋ก, xattr ํธ๋ค๋ฌ ํจ์ ํฌ์ธํฐ๋ฅผ **๊ณ ์ ๋ ์ปดํ์ผ ํ์ ์์ PAC diversifier`#0x307a`** ๋ก ์๋ช
ํฉ๋๋ค.
root@kitploit:~
; XNU ์ปค๋ โ default_setxattr_doubleagent (๋์ปดํ์ผ๋จ)
handler_ptr = vnode_operations[VNOP_SETXATTR_SLOT]; // vnop ํ
์ด๋ธ์์ ์ฝ๊ธฐ
signed_ptr = PACDA(handler_ptr, 0x307a); // ๊ณ ์ diversifier๋ก ์๋ช
... call AUTDA(signed_ptr, 0x307a) โ BLR // ์ธ์ฆ ํ ๋ถ๊ธฐ
diversifier๊ฐ ๊ณ ์ ๋์ด ์๊ณ ๊ณต๊ฐ์ ์ผ๋ก ์๋ ค์ ธ ์๊ธฐ ๋๋ฌธ์, ์ปค๋ ์ฐ๊ธฐ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ๊ฐ์ง ๊ณต๊ฒฉ์๋ ๋ค์์ ์ํํ ์ ์์ต๋๋ค:
1. ์์์ ์ปค๋ ์ฃผ์์ ๋ํ PAC ์๋ช
ํฌ์ธํฐ๋ฅผ ์์กฐ:
`forged = PACIA(shellcode_addr, 0x307a)`
2. ๋์ vnode์ `vnode_operations` ํ
์ด๋ธ์ ํด๋น ์ฌ๋กฏ์ `forged`๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
3. tmpfs ๋ง์ดํธ์ ๋ชจ๋ ํ์ผ์ `setxattr()` ํธ์ถ โ ์ปค๋์ด `shellcode_addr`์ ์คํํฉ๋๋ค.
* * *
## ์ต์คํ๋ก์ ์ฒด์ธ์์์ ์ญํ
iOS 26.6 ์ปค๋ ๊ถํ ์์น ์ฒด์ธ์์:
root@kitploit:~
CVE-2026-64788 (IOGPUFamily UAF) โ ์ปค๋ ์ฝ๊ธฐ/์ฐ๊ธฐ ํ๋ฆฌ๋ฏธํฐ๋ธ
CVE-2026-65330 (์ด ๋ฒ๊ทธ) โ PC ์ ์ด โ root (uid=0)
`sign_ptr` ํ๋ฆฌ๋ฏธํฐ๋ธ(diversifier `#0x307a`๋ฅผ ์ฌ์ฉํ PACIA)๋ ํ์ฅ POC์์ ์ธ๋ผ์ธ ARM64e ์ด์
๋ธ๋ฆฌ๋ก ๊ตฌํ๋ฉ๋๋ค. ์ปค๋ ์ฝ๊ธฐ/์ฐ๊ธฐ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ ๋ค์ ์ฉ๋๋ก ์ฌ์ฉ๋ฉ๋๋ค:
1. ๋์ vnode์ `v_op` ํฌ์ธํฐ๋ฅผ ์ฐพ์ต๋๋ค.
2. ์์กฐ๋ PAC ํฌ์ธํฐ๋ฅผ `vnode_operations[VNOP_SETXATTR_SLOT]`์ ๊ธฐ๋กํฉ๋๋ค.
3. `setxattr("/tmp/trigger", ...)`๋ฅผ ํตํด ์คํ์ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.
* * *
## PoC ๋์
๋
๋ฆฝํ PoC(`poc_pac_bypass.c`)๋ ์ทจ์ฝํ VNOP ๊ฒฝ๋ก๋ฅผ ์คํํฉ๋๋ค:
* `/var/root/poc65330_test`์ ํ
์คํธ ํ์ผ ์์ฑ
* `XATTR_NAME="com.apple.poc.cve65330.test"`๋ก `setxattr()` ํธ์ถ โ `default_setxattr_doubleagent`์ ๋๋ฌ
* VNOP๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ์คํ๋๋์ง ํ์ธํ๊ธฐ ์ํด 10ํ ๋ฐ๋ณต ์คํธ๋ ์ค ํจ์ค ์คํ
* ์ ๋ฆฌ ๊ฒฝ๋ก์ ๋๋ฌํ๊ธฐ ์ํด `removexattr()` ํธ์ถ
* ํ
์คํธ ํ์ผ ์ ๋ฆฌ
PoC๋ PAC ํฌ์ธํฐ๋ฅผ ์์กฐํ๊ฑฐ๋ ์ปค๋ ๋ฐ์ดํฐ๋ฅผ ๋ฎ์ด์ฐ์ง **์์ต๋๋ค** โ ์ผ๋ฐ์ ์ธ `setxattr()` syscall์ ํตํด ์ฌ์ฉ์ ๊ณต๊ฐ์์ ์ทจ์ฝํ `#0x307a` ์๋ช
๊ฒฝ๋ก์ ๋๋ฌํ ์ ์์์ ๋ณด์ฌ์ค ๋ฟ์
๋๋ค.
* * *
## ์๊ตฌ ์ฌํญ
* iOS 26.6 (23G71) ๋๋ ์ด์ ๋ฒ์
* `/var/root/` ํ์ผ ์์ฑ์ ์ํ ํ์ฅ ๋๋ ์๋๋ฐ์ค ์ดํ (`setxattr` ํธ์ถ ์์ฒด๋ ๋ชจ๋ ํ๋ก์ธ์ค์์ ๋๋ฌ ๊ฐ๋ฅ โ ํ์ผ ๊ฒฝ๋ก๋ ์๋๋ฐ์ค์์ ์ฐ๊ธฐ ๊ฐ๋ฅํ ์์น๋ก ์กฐ์ ๊ฐ๋ฅ)
* ์ ์ฒด PC ์ ์ด ์ต์คํ๋ก์์ ์ํ ์ปค๋ ์ฐ๊ธฐ ํ๋ฆฌ๋ฏธํฐ๋ธ ํ์
* * *
## ๋น๋
root@kitploit:~
# ๋
๋ฆฝํ C ๋ฐ์ด๋๋ฆฌ (ํ๋ ์์ํฌ ๋ถํ์)
clang -arch arm64 -o poc poc/poc_pac_bypass.c
# ๊ธฐ๊ธฐ ๋ด ์คํ์ฉ (์๋ช
ํฌํจ):
clang -arch arm64 -isysroot $(xcrun --sdk iphoneos --show-sdk-path) \
-o poc poc/poc_pac_bypass.c
codesign -s "Apple Development" poc
* * *
## Diversifier ๊ฒ์ฆ
๊ณ ์ diversifier `0x307a`๋ 26.6 (23G71) kernelcache์ ๋์ค์ด์
๋ธ๋ฆฌ์์ ๊ฒ์ฆ๋์์ต๋๋ค:
root@kitploit:~
; default_setxattr_doubleagent + 0x?? (๊ทผ์ฌ์น)
MOVZ x1, #0x307a ; diversifier ์์
PACDA x0, x1 ; ํธ๋ค๋ฌ ํฌ์ธํฐ ์๋ช
ํธ์ถ ์ง์ ์ ํด๋น `AUTDA x0, x1`์ ๋์ผํ ์์๋ฅผ ์ฌ์ฉํ๋ฏ๋ก, diversifier `0x307a`๋ก PACIA ์์กฐ๋ ๋ชจ๋ ํฌ์ธํฐ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ธ์ฆ๋จ์ ํ์ธํฉ๋๋ค.
* * *
## ํ์๋ผ์ธ
๋ ์ง| ์ด๋ฒคํธ
---|---
2026-08-17| ์์ ์ฌํญ์ด ํฌํจ๋ iOS 26.6.1 ๋ฆด๋ฆฌ์ค
2026-08-17| Apple ๋ณด์ ๊ถ๊ณ ์ ํฌ๋ ๋ง ๊ฒ์
* * *
## ์ฐธ๊ณ ์๋ฃ
* Apple ๋ณด์ ๊ถ๊ณ โ iOS 26.6.1