
Samsung Galaxy S21 पर CVE-2026-43499 को लक्षित करने वाला एक्सप्लॉइट चेन शोध
इस डिवाइस के लिए कार्यशील, सक्रिय KernelSU प्रोजेक्ट: kurtulusakyuz/dfroot-s21 — वहीं से शुरू करें। यह रेपो केवल IonStack शोध को सुरक्षित रखता है।
Samsung Galaxy S21 (o1s) पर फर्मवेयर G991BXXSJHZC2 के लिए
डिवाइस-विशिष्ट IonStack पेलोड। स्थिति: शोध बंद — नियतात्मक
DoS-मात्र; इस बिल्ड पर कर्नेल राइट पथ असंभव सिद्ध है।
पूर्ण प्रमाण RESEARCH.md में।
| फ़ील्ड | मान |
|---|---|
| मॉडल | SM-G991B |
| डिवाइस | o1s |
| फर्मवेयर | G991BXXSJHZC2 |
| Android | 15 / API 35 (AP3A.240905.015.A2, फिंगरप्रिंट samsung/o1sxeea/o1s) |
| पेज साइज़ | 4096 |
| कर्नेल | 5.4.242-30958140-abG991BXXSJHZC2 |
| SoC | Exynos 2100 |
| मिटिगेशन | CFI+PAC+PAN/UAO, KDP_CRED, SELinux enforcing, no userfaultfd |
NebuSec/CyberMeowfia (अपस्ट्रीम b850d3bddc74c3328d5fbcc0568d21962b55d949)
में प्रकाशित IonStack CVE-2026-43499 कार्यान्वयन और
BuSung-dev/CVE-2026-43499-S25U पर आधारित, F-19-F/IonStackQuest3 का आभार।
अपस्ट्रीम Apache License 2.0 LICENSE में बरकरार (NOTICE देखें)।
इस डिवाइस के लिए GhostLock राइट प्रोग्राम पूर्ण और बंद है, रुका हुआ नहीं। क्रम में क्या सिद्ध हुआ:
remove_waiter() waiter->task->pi_blocked_on
के बजाय current->pi_blocked_on को साफ़ करता है,
इसलिए एक FUTEX_CMP_REQUEUE_PI रोलबैक स्टैक rt_waiter के लिए
एक डैंगलिंग पॉइंटर छोड़ देता है। अपस्ट्रीम फिक्स 3bfdc63 5.4.242 में अनुपस्थित है।sched_setattr डिवाइस-समान Oops को पुनरुत्पादित करता है
(rt_mutex_adjust_prio_chain+0x108 → _raw_spin_trylock+0x1c,
fault VA 0) दोनों KDP-रहित QEMU गेस्ट में और फ़ोन पर ही
(lastkmsg 118/119)। डैंगलिंग स्लॉट पूरी तरह मैप्ड है
(stack-top E-0x328, जीवनचक्र QEMU+GDB के माध्यम से चित्रित)।lock (+0x38) कभी भी हमलावर-नियंत्रित नहीं है
(15/15 डंप)। स्वतंत्र पोर्ट (ASUS i005, AQUOS sigreturn मार्ग)
उसी दीवार से टकराते हैं। ज्यामिति, प्रायिकता नहीं।संबंधित 2026 कर्नेल LPE मार्ग भी इस बिल्ड पर
फर्मवेयर कॉन्फ़िग द्वारा बंद कर दिए गए (USER_NS, RDS, CRYPTO_USER_API_AEAD सभी unset;
MFC_USE_DMABUF_CONTAINER=n के साथ MFC double-free अगम्य;
AF_ALG/eBPF शेल के लिए gated)। पोस्ट-राइट आर्टिफैक्ट
(KernelSU .ko + ksud इस सटीक फर्मवेयर के लिए बनाए गए) अलग से
staged हैं; इस ट्री में src/kernelsnitch/ हेडर
staged बने हुए हैं लेकिन unbuilt (राइट के बिना कोई कंज़्यूमर मौजूद नहीं)।
Makefile build (NDK r27+, ANDROID_NDK_HOME)
src/ exploit source (o1s profile only)
src/targets/o1s-G991BXXSJHZC2/ target.h + p0_fingerprint.h
src/kernelsnitch/ mm_struct leak (futex hash collision, staged)
tools/ p0 fingerprint helper
RESEARCH.md research notes (geometry, verdicts)
export ANDROID_NDK_HOME=/path/to/android-ndk
make clean all
# SLIDE_WRITER_SEL=1|2|3 selects mcast/sigreturn(default)/xattr writers.
# Unset selects the experimental pselect writer (see RESEARCH.md).
आउटपुट (build/o1s-G991BXXSJHZC2/):
cve-2026-43499 (LD_PRELOAD पेलोड), cve-2026-43499-app.so (ऐप पेलोड),
cve-2026-43499-root (रूट हेल्पर)।
adb push build/o1s-G991BXXSJHZC2/cve-2026-43499 /data/local/tmp/cve-2026-43499
adb push build/o1s-G991BXXSJHZC2/cve-2026-43499-root /data/local/tmp/cve-2026-43499-root
adb shell chmod 755 /data/local/tmp/cve-2026-43499 /data/local/tmp/cve-2026-43499-root
adb shell "LD_PRELOAD=/data/local/tmp/cve-2026-43499 sh"
# on success:
adb shell "/data/local/tmp/cve-2026-43499-root -c 'id; getenforce'"
अपेक्षा प्रबंधन: इस बिल्ड पर "सफलता" का अर्थ है ट्रिगर walk और उसका oracle आउटपुट — एक NULL-lock walk रूट देने के बजाय डिवाइस को रीबूट करता है (ऊपर "अंतिम स्थिति" देखें)। रूट, यदि कभी भविष्य के राइट प्रिमिटिव के माध्यम से प्राप्त हो, केवल रीबूट तक जीवित रहता है; कुछ भी फ्लैश नहीं किया जाता।
/data/local/tmp रीबूट पर मिट जाता है — हर बूट के बाद
बाइनरीज़ को फिर से push करें।