
Honor 80 GT (MagicOS 8.0.0.128, kernel 5.10.168) विशेषाधिकार वृद्धि PoC: GhostLock (CVE-2026-43499) + कस्टम KernelSU मॉड्यूल लोडिंग
अंग्रेज़ी | 中文
यह Honor 80 GT (AGT-AN00) के लिए एक लोकल विशेषाधिकार वृद्धि एक्सप्लॉइट है — CVE-2026-43499, जो कर्नेल rtmutex remove_waiter पथ में एक use-after-free दोष है — और इसके साथ एक KernelSU कर्नेल-मॉड्यूल लोडिंग समाधान भी है।
सिद्धांत रूप में, यहाँ वर्णित बग और तकनीकें 9.0.0.220 तक के प्रत्येक MagicOS बिल्ड पर लागू होती हैं। अनुकूलित संस्करण:
| MagicOS | Kernel | स्थिति |
|---|---|---|
| 8.0.0.128 | 5.10.168 | सत्यापित |
| 8.0.0.160 | 5.10.209 | सत्यापित |
| 9.0.0.157 | 5.10.209 | सत्यापित |
| 9.0.0.200SP1 | 5.10.236 | सत्यापित |
| 9.0.0.220SP2 / SP4 | 5.10.236 | डिवाइस पर सत्यापित (SP4, SP2 जैसी ही बूट इमेज के साथ आता है) |
यह उम्मीद है कि 9.0 श्रृंखला के अन्य संस्करण ऑफ़सेट तालिका (src/targets/) को पुनः उत्पन्न करने और kstack कैरियर स्लॉट की पुनः जाँच करने के बाद काम करेंगे।
⚠️ चेतावनी
- केवल आपके अपने डिवाइस पर सुरक्षा अनुसंधान के लिए।
- अपने जोखिम पर उपयोग करें। इस सॉफ़्टवेयर के साथ किसी भी प्रकार की कोई वारंटी नहीं आती (देखें LICENSE)। सिद्धांत रूप में इसे केवल चलाने से आपका डिवाइस brick नहीं होना चाहिए या डेटा नष्ट नहीं होना चाहिए, लेकिन फिर भी पहले बैकअप लें; इस कोड को चलाने से या इसके द्वारा दी गई root पहुँच के साथ आप जो कुछ भी करते हैं, उससे जो भी होता है — वह लेखकों की नहीं, आपकी ज़िम्मेदारी है।
- यह एक्सप्लॉइट UAF के माध्यम से कर्नेल मेमोरी को संशोधित करता है। एक असफल प्रयास डिवाइस को रिबूट कर देता है; रिबूट सब कुछ बहाल कर देता है। प्रति रन सफलता 100% नहीं है — बस इसे फिर से चलाएँ।
- Root का अर्थ है डिवाइस पर पूर्ण नियंत्रण — इसे सावधानी से उपयोग करें। यह प्रोजेक्ट आपको केवल root दिलाता है; उसके बाद images फ्लैश करना, पार्टीशन लिखना, सुरक्षाएँ अक्षम करना, या अप्रयुक्त मॉड्यूल इंस्टॉल करना डिवाइस को स्थायी रूप से brick कर सकता है, और इसकी ज़िम्मेदारी आप पर है।
exploit/ GhostLock PoC source (Android arm64) + build system
src/ exploit core: futex UAF, KASLR slide, sysctl boot_id hijack,
arbitrary R/W, cred/SELinux/sig_enforce writes, KSU load
src/targets/ per-firmware offset tables (target.h)
ksu/ custom kernelsu.ko build (MagicOS kernel + device config) and the
PC-side adb load driver
tools/ on-device load helpers: load_ko.c / kmsg_dumper.c (built from
source), policy rules, loader template (+ where to get the
binaries)
आवश्यकताएँ: Docker, Android Platform Tools।
प्रति फ़र्मवेयर प्री-बिल्ट बंडल: अपने MagicOS संस्करण से मेल खाने वाला बंडल Releases से लें, इसे होस्ट पर अनपैक करें, और चलाएँ
./setup.sh # PC, with adb: checks the kernel version, pushes
# everything, runs the chain, retries on the
# occasional miss
आस-पास कोई PC नहीं है? बंडल को फ़ोन पर अनपैक करें और वही स्क्रिप्ट Shizuku शेल (rish) से चलाएँ — यह पता लगा लेता है कि यह कहाँ है और बाकी काम स्थानीय रूप से करता है:
sh /sdcard/ghostlock-<version>/setup.sh
इसके बजाय स्रोत से बिल्ड करें:
# 1. Build the device exploit binary
cd exploit && ./docker-build.sh bin # exploit_static (8.0.0.128)
# 8.0.0.160: ./docker-build.sh PROJECT=annap-AGT-AN00_8.0.0.160 bin
# (./docker-build.sh ondevice builds the static binary with the default
# env config baked in; first run pulls the NDK, ~1.2GB)
# 2. Obtain/build the KSU bundle binaries into ksu/tools/ —
# see ksu/tools/README.md (kernelsu_h80gt.ko: ksu/README.md — build it
# against the opensource tree matching your firmware's kernel sublevel;
# ksud: shipped in the repo; magiskpolicy: shipped in the repo; load_ko/kmsg_dumper:
# ./docker-build.sh tools)
# 3. Enable ADB debugging on the phone, then
bash ../ksu/ksu_load_ko.sh
# 8.0.0.160: PROJECT=annap-AGT-AN00_8.0.0.160 bash ../ksu/ksu_load_ko.sh
यह स्क्रिप्ट पूरी श्रृंखला को adb के माध्यम से संचालित करती है: GhostLock (root + permissive + sig_enforce फ़्लिप), magiskpolicy के माध्यम से SELinux पॉलिसी इंजेक्शन, नकली kallsyms बाइंड-माउंट, load_ko (init_module), फिर ksud ब्रिंग-अप चरण, जिसमें सबसे आख़िरी चरण के रूप में SELinux enforcing बहाल किया जाता है। /proc/modules में kernelsu आने की प्रतीक्षा करें, फिर KernelSU मैनेजर खोलें (जो "Working <LKM> [Jailbreak mode]" दिखाता है)।
CONFIG_MODULE_SIG_FORCE=y — रनटाइम sig_enforce फ़्लैग अहस्ताक्षरित मॉड्यूल लोड को रोकता है; एक्सप्लॉइट इसे अस्थायी रूप से 0 कर देता है (मॉड्यूल लोड हो जाने पर लोडर स्क्रिप्ट इसे वापस 1 कर देती है)।/proc/kallsyms से commit_creds और उसके जैसे अन्य प्रतीकों को हटा देता है, इसलिए कर्नेल लोडर .ko के अपरिभाषित प्रतीकों को हल नहीं कर सकता। यह प्रवाह एक नकली kallsyms को बाइंड-माउंट करता है, जिसमें स्ट्रिप किए गए प्रतीक उनके वास्तविक रनटाइम पतों (लिंक एड्रेस + KASLR स्लाइड) पर जोड़े जाते हैं।android12-5.10_kernelsu.ko सीधे उपयोग नहीं किया जा सकता। ksu/ फ़र्मवेयर के सबलेवल और डिवाइस के अपने कर्नेल कॉन्फ़िग से मेल खाते MagicOS कर्नेल स्रोत के विरुद्ध KernelSU v3.2.5 को पुनः बिल्ड करता है। देखें ksu/README.md।पूरी श्रृंखला (UAF → KASLR → arbitrary R/W → cred → SELinux permissive → sig_enforce → KernelSU लाइव, enforcing बहाल, boot_id बहाल) उपरोक्त तालिका के प्रत्येक संस्करण के लिए एक वास्तविक डिवाइस पर सत्यापित की गई है। एक रन शुरुआत में चूक सकता है और फ़ोन को रिबूट कर सकता है (लगभग चार में से एक बार); सेटअप स्क्रिप्ट स्वचालित रूप से पुनः प्रयास करती है, या बस इसे फिर से चलाएँ।
exploit/, शीर्ष-स्तरीय दस्तावेज़) Apache License 2.0 के अंतर्गत हैं (देखें LICENSE), ठीक उसी तरह जैसे ऊपरी प्रवाह का IonStack PoC जिससे यह पोर्ट व्युत्पन्न हुआ है।ksu/ के अंतर्गत फ़ाइलें GPL-2.0 हैं (देखें ksu/LICENSE): init-h80gt.patch और ksu_rules.annotated पॉलिसी सेट KernelSU के kernel/ निर्देशिका से व्युत्पन्न हैं, जो GPL-2.0 है।