अपडेट पर वापस जाएँ
UpdatedAug 8, 2026

cve-2026-43499 — Updated!

PD2229B के लिए 43499(ghostlock) संभाव्यता अध्ययन

साझा करें

GhostLock का PD2229 (SM8475, 5.10.233 GKI) पर शोषण विफलता सारांश

一、भेद्यता और डिवाइस तथ्य

1.1 CVE-2026-43499 (GhostLock) मूल जानकारी

आइटममान
भेद्यता प्रकारrt_mutex / futex PI पथ में स्टैक-आधारित Use-After-Free
परिचय संस्करणLinux 2.6.39-rc1 (मई 2011, commit 8161239a8bcc)
फिक्स संस्करणमुख्यलाइन 7.1 (commit 3bfdc63936dd), स्थिर शाखाएँ: 6.1.175 / 6.6.140 / 6.12.86 / 6.18.27 / 7.0.4
पूर्वापेक्षाCONFIG_FUTEX_PI=y (मुख्यधारा कर्नेल में डिफ़ॉल्ट रूप से सक्षम)
CVSS7.8 High
शोषण स्थिरताNebuSec मूल श्रृंखला 97%, लगभग 5 सेकंड में root
kernelCTF इनाम$92,337 USD

प्रभावित कर्नेल रेंज:

  • 2.6.39 ≤ Linux < 6.1.175 ✅ प्रभावित
  • 6.2 ≤ Linux < 6.6.140 ✅ प्रभावित
  • 6.7 ≤ Linux < 6.12.86 ✅ प्रभावित
  • 6.13 ≤ Linux < 6.18.27 ✅ प्रभावित
  • 6.19 ≤ Linux < 7.0.4 ✅ प्रभावित
  • Android GKI 5.10 किसी भी फिक्स शाखा में नहीं है → PD2229 का 5.10.233 सैद्धांतिक रूप से प्रभावित

1.2 PD2229 डिवाइस वास्तविक परीक्षण

आइटममान
SoCQualcomm SM8475 (Snapdragon 8 Gen 1 Plus)
कर्नेल संस्करण5.10.233-gki-g6e61de9f5b58 #1 SMP PREEMPT (नवंबर 24, 2025)
Android संस्करण15 (OriginOS 5)
संकलन समय2025/11/25
Android पैच2025/11/01
CONFIG_FUTEX_PIy ✅
CONFIG_UNMAP_KERNEL_AT_EL0y (KPTI सक्षम)
kptr_restrictenforced
CONFIG_IO_URINGy ✅ (vmlinux प्रतीक द्वारा पुष्टि, और seccomp io_uring_setup को इंटरसेप्ट नहीं करता)

二、आदर्श शोषण श्रृंखला बनाम PD2229 वास्तविक प्रगति

2.1 NebuSec मूल श्रृंखला (x86_64 / Pixel 10 सफल)

1. KASLR बाईपास        → prefetch timing / PR_SET_MM_MAP auxv
2. UAF ट्रिगर          → तीन-थ्रेड PI निर्भरता डेडलॉक → FUTEX_CMP_REQUEUE_PI -EDEADLK लौटाता है
3. स्टैक पुनर्प्राप्ति    → PR_SET_MM_MAP auxv को waiter स्टैक फ्रेम में कॉपी करता है
4. rb_erase प्रतिबंधित लेखन   → inet6_protos[IPPROTO_UDP] को ओवरराइट करता है
5. CEA + ROP         → नियंत्रण प्रवाह अपहरण
6. core_pattern फ्लिप → root shell (97% सफलता दर)

2.2 PD2229 प्रत्येक चरण की वास्तविक प्रगति

चरणस्थितिविवरण
1. KASLR बाईपास✅ लागूperf_event_open + callchain सैंपलिंग साइड-चैनल (OPPO Find X6 Pro 5.15.149 अनुकूलन विधि के समान)
2. UAF ट्रिगर✅ लागूतीन-थ्रेड PI डेडलॉक सफल, FUTEX_CMP_REQUEUE_PI -EDEADLK लौटाता है
3. स्टैक पुनर्प्राप्ति प्रिमिटिव❌ आर्किटेक्चरल विफलतासभी ज्ञात syscall के स्टैक फ्रेम waiter के साथ ओवरलैप नहीं होते (धारा 3 देखें)
4. rb_erase प्रतिबंधित लेखन❌ अवरुद्धपूर्वापेक्षा पूरी नहीं हुई
5. inet6_protos ओवरराइट❌ शुरू नहींचरण 4 पर निर्भर
6. ROP / नियंत्रण प्रवाह अपहरण❌ शुरू नहींचरण 5 पर निर्भर
7. root shell❌ शुरू नहींचरण 6 पर निर्भर

三、स्टैक पुनर्प्राप्ति प्रिमिटिव संपूर्ण परीक्षण परिणाम (PD2229 वास्तविक परीक्षण)

3.1 स्टैक फ्रेम लेआउट प्रमुख गणना

futex पथ कुल गहराई:
  __arm64_sys_futex    0x90
  + do_futex           0xc0
  + futex_wait_requeue_pi  0x1b0
  = 0x300
waiter स्थिति = SYS_SP - 0x300 + 0x20 = SYS_SP - 0x2e0

pselect पथ:
  core_sys_select स्टैक फ्रेम 0x1c0, stack_fds sp+0x50 पर
  कवरेज रेंज: SYS_SP - 0x1c0 + 0x50 = SYS_SP - 0x170 से शुरू
  waiter (SYS_SP - 0x2e0) से अंतर 0x170 (368 बाइट्स) → कोई ओवरलैप नहीं

3.2 परीक्षण की गई 17 स्टैक लेखन विधियाँ

#विधिसिस्टम कॉलPD2229 परिणाममुख्य विफलता कारण
1stamp_prctlPR_SET_MM_MAP❌ EPERMAndroid हार्ड इंटरसेप्ट
2stamp_pselectpselect6 (NFDS=320)❌ कोई ओवरलैप नहींwaiter fd_set से 120B नीचे
3stamp_pselectpselect6 (NFDS>336)❌ हीप आवंटनkvmalloc पथ
4stamp_socketMCAST_JOIN_SOURCE_GROUP❌ अपर्याप्त कवरेजकेवल lock फ़ील्ड लिखता है
5stamp_sendmsgsendmsg❌ waiter से 80B दूरस्टैक फ्रेम 0x90 गहराई अपर्याप्त
6stamp_sendmmsgsendmmsg❌ waiter से 112B दूरस्टैक फ्रेम अपर्याप्त
7stamp_recvmmsgrecvmmsg❌ task/lock शून्य करता है0x1d0 स्टैक फ्रेम महत्वपूर्ण पॉइंटर्स को नष्ट करता है
8stamp_process_vmprocess_vm_writev❌ कोई ओवरलैप नहींचाइल्ड थ्रेड स्टैक अलग से आवंटित
9stamp_keyctlKEYCTL_INSTANTIATE_IOV❌ EOPNOTSUPPसिस्टम कॉल समर्थित नहीं + स्टैक फ्रेम 0x40
10stamp_tcpTCP_ZEROCOPY_RECEIVE❌ स्टैक फ्रेम अपर्याप्तअनुमानित गहराई पर्याप्त नहीं
11stamp_futexFUTEX_CMP_REQUEUE_PI पुनरावर्ती❌ तार्किक रूप से असंभवUAF विंडो को नष्ट करता है
12binder ioctlBINDER_WRITE_READ❌ EACCESshell के पास /dev/binder अनुमति नहीं
13pollpoll❌ हीप आवंटनpollfd हीप पर
14epoll_waitepoll_wait❌ फ्रेम बहुत उथलास्टैक फ्रेम 0xE0
15sched_setattrsched_setattr❌ गहराई अपर्याप्तस्टैक फ्रेम 0xb0
16timerfd_settimetimerfd_settime❌ कोई स्टैक कॉपी नहींकोई बड़ा स्टैक बफर नहीं
17io_uring_registerIORING_REGISTER_*❌ दोहरी विफलता①स्टैक फ्रेम केवल 0xF0, copy_from_user लक्ष्य निश्चित sp+0x8 (waiter के sp+0x1D0 से 424 बाइट्स का अंतर); ②हालाँकि io_uring_setup seccomp द्वारा इंटरसेप्ट नहीं किया गया (ENOSYS के बजाय EFAULT लौटाता है), स्टैक लेआउट मेल नहीं खाता

17/17 सभी विफल।

3.3 विफलता का मूल कारण

PD2229 के SM8475 5.10 GKI कंपाइलर (PGO + LTO + BOLT) द्वारा उत्पन्न स्टैक लेआउट, core_sys_select के stack_fds और futex_wait_requeue_pi के rt_mutex_waiter के बीच आर्किटेक्चरल गैर-ओवरलैप का कारण बनता है। यह कंपाइलर द्वारा निर्धारित एक वस्तुनिष्ठ तथ्य है, न कि शोषण तकनीक की समस्या।

JoinChang रिपॉजिटरी स्पष्ट रूप से बताती है: "The pselect stack overlay only works when the freed rt_mutex_waiter lands within the user-controllable region of the stack_fds buffer" — PD2229 इस शर्त को पूरा नहीं करता।


四、सार्वजनिक संदर्भ रिपॉजिटरी तुलनात्मक विश्लेषण

NebuSec/CyberMeowfia — मूल शोषण फ्रेमवर्क

  • रिपॉजिटरी: https://github.com/NebuSec/CyberMeowfia
  • लक्ष्य: x86_64 Linux / Pixel 10 (6.x GKI)
  • स्टैक पुनर्प्राप्ति: PR_SET_MM_MAP auxv को कर्नेल स्टैक में कॉपी करता है
  • सफलता दर: 97%, लगभग 5 सेकंड [root shell]
  • PD2229 अनुकूलता: ❌ PR_SET_MM_MAP Android पर EPERM द्वारा इंटरसेप्ट किया गया

JoinChang/ghostlock-oneplus — OnePlus बूटलोडर अनलॉक jailbreak

  • रिपॉजिटरी: https://github.com/JoinChang/ghostlock-oneplus
  • सत्यापित डिवाइस:
    • OnePlus Ace 6T (PLR110, SM8845) — 6.12.38 GKI ✅
    • OnePlus 15 (PLK110, SM8845) — 6.12.23 GKI ✅
  • तकनीकी बिंदु:
    • ऑफसेट स्वचालित निष्कर्षण: kallsyms (28) + BTF (57) + व्युत्पन्न (9) + स्थिरांक (12) = 103/103
    • pselect स्टैक ओवरले, SP diff = -64
    • PSELECT_SHIFT = -2
    • शोषण श्रृंखला: futex UAF → नकली waiter → pselect नियंत्रित स्टैक → rb_erase प्रतिबंधित लेखन → selinux_state.enforcing=0 → cred को init_cred से ओवरराइट
  • स्पष्ट रूप से असंभव घोषित: "Not Feasible (stack layout incompatible)" — केवल उन कर्नेलों पर लागू जहां pselect stack_fds और waiter ओवरलैप होते हैं
  • PD2229 अनुकूलता: ❌ कर्नेल पीढ़ी बेमेल (6.12 बनाम 5.10), और स्टैक लेआउट ओवरलैप नहीं होता

p2p3p/GhostLock-for-OnePlus — OnePlus 6.12 पूर्ण शोषण

  • रिपॉजिटरी: https://github.com/p2p3p/GhostLock-for-OnePlus
  • सत्यापित: OnePlus Ace 6T (SM8845, 6.12.38) ✅
  • PD2229 अनुकूलता: ❌ JoinChang के समान, कर्नेल पीढ़ी बेमेल

YuKongA/ghostlock-oplus — OPPO Find N5/X8

OPPO Find X6 Pro (PGEM10) अनुकूलन — 5.15.149

  • डिवाइस: SM8550, 5.15.149-android13, Android 15
  • प्रगति: ✅ KASLR बाईपास (perf_event_open + callchain सैंपलिंग); बाद के चरणों का पूर्ण शोषण सार्वजनिक नहीं
  • महत्व: साबित करता है कि 5.15 GKI पर KASLR बाईपास संभव है, लेकिन स्टैक पुनर्प्राप्ति चरण सार्वजनिक रूप से सत्यापित नहीं

श्रेणियाँ