
CVE-2026-43499 के लिए Samsung Galaxy A17 पर कर्नेल एक्सप्लॉइट जो KDP बाइपास, KASLR रिकवरी, और फोर्ज्ड वर्कक्यू निष्पादन के माध्यम से रूट प्राप्त करता है, साथ में स्थायी शेल।
Samsung Galaxy A17 SM-A175F पर CVE-2026-43499 ("GhostLock") के लिए पूर्ण user-to-root exploit चेन, जो Android 16 / GKI 6.12 पर चल रहा है।
यह चेन सार्वजनिक GhostLock primitives से शुरू होती है और एक usermode helper के रूप में निष्पादित होकर समाप्त होती है:
uid=0(root) gid=0(root) groups=0(root)
context=u:r:kernel:s0
यह g4d / g4sh के माध्यम से प्रति-बूट एक स्थायी रूट शेल भी शुरू करता है और बिना किसी कर्नेल पैनिक के बाहर निकल जाता है।
📖 पूर्ण तकनीकी लेख:
https://www.mobilehackinglab.com/blog/cve-2026-43499-ghostlock-a17-root-shell
शोध नोट
हमने CVE-2026-43499 की खोज नहीं की थी। मूल भेद्यता और IonStack शोध का श्रेय Nebula Security को जाता है।
यह रिपॉज़िटरी Samsung Galaxy A17 में हमारे स्वतंत्र पोर्ट, Samsung के कर्नेल सुरक्षा उपायों के लिए आवश्यक परिवर्तनों, और एक नए अंतिम शोषण चरण का दस्तावेज़ीकरण करती है।
केवल अधिकृत सुरक्षा शोध और शैक्षिक उद्देश्यों के लिए।
| CVE | CVE-2026-43499 — "ghostlock" |
| डिवाइस | Samsung Galaxy A17 (SM-A175F, mt6789) |
| GPU | Mali-G57 |
| कर्नेल | 6.12.23-android16-5-abA175FXXS3BZA5-4k |
| परिणाम | uid=0(root) / u:r:kernel:s0 |
| रूट शेल | g4d डेमॉन + g4sh क्लाइंट |
| स्थायित्व | प्रति-बूट |
| शोषण से बाहर निकलना | स्वच्छ, कोई कर्नेल पैनिक नहीं |
| सामना किए गए शमन उपाय | Samsung KDP, DEFEX, SELinux, PANIC_ON_OOPS, arm64 KASLR |
| समर्थित फ़र्मवेयर | A175FXXS3BZA5 (कर्नेल 6.12.23) और A175FXXS6CZG1 (कर्नेल 6.12.38, SPL 2026-07-05) — दोनों डिवाइस-सत्यापित, समान श्रृंखला |
मूल ghostlock शोध प्रवेश आदिम (entry primitives) प्रदान करता है:
pselect reclaim
↓
fake rt_mutex_waiter
↓
constrained rb-tree pointer write
हालाँकि, Galaxy A17 पर, मानक क्रेडेंशियल-पैचिंग एंडगेम काम नहीं करता है।
KDP EL2 पर क्रेडेंशियल-संबंधित कर्नेल डेटा की सुरक्षा करता है।
इस बिल्ड पर, टास्क क्रेडेंशियल्स को संशोधित करने के प्रयासों को चुपचाप छोड़ दिया गया, भले ही लक्ष्य पते सही थे।
इसलिए रूट क्रेडेंशियल्स लिखने के बजाय, यह पोर्ट कर्नेल को मौजूदा विशेषाधिकार प्राप्त क्रेडेंशियल्स के साथ निष्पादित करवाता है।
अंतिम चरण:
constrained kernel write
↓
physical read/write channel
↓
KASLR slide recovery
↓
discover system_wq / cpu_pwq
↓
forge work_struct
↓
call_usermodehelper_exec_work
↓
/system/bin/sh
↓
uid=0(root), u:r:kernel:s0
एक जाली work item को bound system_wq pool पर रखा जाता है और ptmx allocation/free storm के साथ ट्रिगर किया जाता है।
परिणामी usermode helper init credentials के साथ निष्पादित होता है।
किसी task credential overwrite की आवश्यकता नहीं है।
userspace shell (uid 2000)
│
▼
pselect / PI-futex primitive
│
▼
constrained aligned kernel pointer write
│
▼
forged pipe_buffer channel
│
▼
arbitrary physical read/write
│
├── recover KASLR slide
│
├── locate system_wq / cpu_pwq
│
└── prepare forged work_struct
│
▼
queue usermode-helper work
│
▼
ptmx storm wakes worker
│
▼
/system/bin/sh runs with init creds
│
▼
uid=0(root)
│
▼
g4d → @ghostlockd → g4sh
सार्वजनिक OnePlus पोर्ट की तुलना में, प्रारंभिक write primitive के बाद के अधिकांश चरणों को फिर से तैयार किया गया।
credential-patching अंतिम चरण को usermode-helper निष्पादन पथ को लक्षित करने वाले एक forged workqueue item से बदल दिया गया।
यह पूरी तरह से संरक्षित cred संरचनाओं को लिखने से बचता है।
पिछला perf-event anchoring दृष्टिकोण इस डिवाइस पर अविश्वसनीय था।
इसके बजाय, exploit boot_id ctl_table प्रविष्टि से तीन slid pointers का उपयोग करता है:
procname
data
proc_handler
तिनों को स्लाइड स्वीकार करने से पहले क्रॉस-वैलिडेट किया जाता है।
cpu_pwq को इनके माध्यम से चलकर खोजा जाता है:
system_wq → pwqs
किसी निश्चित डिवाइस-विशिष्ट ऑफ़सेट पर निर्भर रहने के बजाय।
मूल चैनल struct page स्थिति में सहायक परिवर्तन छोड़ता है जो टियरडाउन के दौरान PANIC_ON_OOPS को ट्रिगर कर सकते हैं।
वर्तमान चेन टियरडाउन क्रैश से बचती है और रूट के बाद स्वच्छ रूप से निकलने का प्रदर्शन किया गया है।
usermode helper प्रारंभ होता है:
g4d
जो abstract Unix socket पर सुनता है:
@ghostlockd
g4sh इससे कनेक्ट होता है और या तो एक इंटरैक्टिव रूट शेल या एक-बार कमांड निष्पादन प्रदान करता है।
/data/local/tmp/a/g4sh
/data/local/tmp/a/g4sh -c "id"
यह लक्ष्य कई सुरक्षाओं को जोड़ता है जो सामान्य Android kernel exploitation तकनीकों को विफल कर देती हैं:
इसने सामान्य से भिन्न exploit रणनीति को बाध्य किया:
arbitrary RW → patch cred → disable SELinux
इसके बजाय:
arbitrary RW → recover runtime state → forge kernel work → execute usermode helper
हाल के Android NDK की आवश्यकता है।
make # BZA5 firmware (kernel 6.12.23)
make czg1 # CZG1 firmware (kernel 6.12.38): per-target slide anchors,
# offsets are uname-keyed at runtime
उत्पन्न करता है:
ghostlock # exploit (ghostlock-czg1 for the CZG1 build)
g4d # static root-shell daemon
g4sh # root-shell client
बाइनरीज़ को पुश करें:
adb push ghostlock /data/local/tmp/a/g4
adb push g4d /data/local/tmp/a/g4d
adb push g4sh /data/local/tmp/a/g4sh
adb shell 'chmod 755 /data/local/tmp/a/g4 /data/local/tmp/a/g4d /data/local/tmp/a/g4sh'
रीबूट-जागरूक एक्सप्लॉइट लूप चलाएँ:
./scripts/rr_loop4.sh
ROOTED के बाद:
adb shell /data/local/tmp/a/g4sh
या एकल कमांड निष्पादित करें:
adb shell '/data/local/tmp/a/g4sh -c "id"'
अपेक्षित परिणाम:
uid=0(root) gid=0(root) groups=0(root) context=u:r:kernel:s0
यह प्रिमिटिव प्रायिकतात्मक है और बूट परिस्थितियों पर अत्यधिक निर्भर करता है।
सफल शोषण के लिए बार-बार प्रयासों की आवश्यकता हो सकती है। शामिल rr_loop4.sh स्क्रिप्ट पुनःप्रयास और रीबूट चक्रों को स्वचालित रूप से संभालती है।
यह एक शोध शोषण है, तत्काल एक-शॉट रूटिंग टूल नहीं।
qemu-e2e/ में निकाले गए Samsung कर्नेल का उपयोग करते हुए एक एंड-टू-एंड सत्यापन हार्नेस शामिल है।
हार्नेस का उपयोग निम्नलिखित का परीक्षण करने के लिए किया गया था:
g4d / g4sh राउंड ट्रिपSamsung कर्नेल इमेज स्वयं शामिल नहीं है।
देखें:
qemu-e2e/
सेटअप निर्देशों के लिए।
Makefile
src/ exploit source and device profiles
src/daemon/ g4d root daemon + g4sh client
docs/OFFSETS.md validated device offsets
docs/PORTING.md porting notes
examples/ proof-of-root artifacts
scripts/rr_loop4.sh reboot-aware exploit loop
qemu-e2e/ end-to-end QEMU validation
NebuSec:
https://nebusec.ai/research/ionstack-part-3/
https://github.com/NebuSec/CyberMeowfia/tree/main/IonStack
https://github.com/JoinChang/ghostlock-oneplus
Samsung Galaxy A17 पोर्ट, KDP सीमाओं, KASLR रिकवरी, workqueue-आधारित अंतिम चरण, और root-shell कार्यान्वयन पर एक गहन नज़र:
https://www.mobilehackinglab.com/blog/cve-2026-43499-ghostlock-a17-root-shell