
Logitech G Cloud · GhostLock CVE-2026-43499 tentative de root
⚠️ Uniquement à des fins de recherche et de défense
Tout le contenu de ce dépôt est généré par DeepSeek AI, exclusivement pour la recherche en sécurité, l'analyse de vulnérabilités et l'évaluation de la sécurité défensive.
Chaîne d'exploitation standard non applicable
La vulnérabilité CVE-2026-43499 existe et peut être déclenchée par une course futex PI (EDEADLK confirmé), mais Qualcomm a réécrit le code cœur de rtmutex (rbtree → bitmap/liste chaînée). La primitive d'écriture standard d'IonStack (écriture contrainte rb_erase) n'existe pas sur ce noyau.
| Élément | Valeur |
|---|
| Modèle | Logitech G Cloud (HALO) |
| Version du firmware | SQ02K.60.0228 (2025-08-27) |
| SoC | Qualcomm Snapdragon 720G (SM7125, ATOLL) |
| GPU | Adreno 618 (700 MHz) |
| CPU | Kryo 465 : 2×Cortex-A76 @2,3 GHz + 6×Cortex-A55 @1,8 GHz |
| Gravure | 8 nm |
| RAM | 4 Go LPDDR4X |
| Stockage | 64 Go UFS |
| Écran | IPS LCD 7 pouces, 1920×1080, 60 Hz |
| Batterie | 6000 mAh |
| Connectivité | Wi-Fi 5, Bluetooth 5.1, USB-C 3.1 |
| Noyau | Linux 4.14.190-perf+ (Clang 10.0.7, GNU ld 2.27) |
| Build du noyau | scm@a9b0f71b66dc, SMP PREEMPT, 2025-08-27 |
| Base du noyau | Qualcomm LA.UM.9.1.r1-09200-SMxxx0.0 |
| Version Android | Android 11 (API 31) |
| Compilé par | Tencent Level Infinite (système de build Zing) |
| Bootloader | Verrouillé, avb=vbmeta, dm-verity activé |
| KASLR | Activé (contournable via perf_event_open) |
| Protections du noyau | KPTI ✅ / PAN ✅ / SCS ❌ / CFI ❌ / PAC ❌ |
| SELinux | Enforcing |
| ID matériel | GR0006 (Logitech HALO CN) |
| Partenaire logiciel | Logitech (matériel) + Tencent Games (logiciel) |
📥 Lien de téléchargement Mega.nz :
[https://mega.nz/folder/I2MUkQyD#n6bG8gzsjqKNdpk8napniQ]Fichiers inclus :
Logitech-HALO_CN-SQ02K.60.0228-USER.zip— firmware complet (1,37 Go)boot.img— image de boot complète (64 Mo)kernel— noyau ARM64 non compressé (35 Mo)kernel.gz— noyau compressé (15 Mo)ramdisk— ramdisk de démarrage (87 Ko)config.txt— configuration complète de compilation du noyau (61 Ko)
GhostLock-SD720G-CVE-2026-43499/
├── exploit/ # 内核利用源码与二进制 / Kernel exploit source & binaries
│ ├── sd720g_exploit.c # 主利用程序(竞争触发 + KASLR + 日志)/ Main exploit
│ ├── sd720g_exploit # 已编译 ARM64 二进制 (2.1 MB) / Compiled binary
│ ├── target_sd720g.h # 核心符号偏移(12 个函数)/ Core symbol offsets
│ ├── target_sd720g_complete.h # 完整 37 符号表 / Full symbol table
│ ├── perf_leak_sd720g.c # KASLR 基址泄露工具 / KASLR base leak
│ ├── perf_leak # 已编译二进制 (2.1 MB) / Compiled binary
│ └── compile_perf_leak.bat # NDK 编译脚本 / NDK build script
│
├── preload/ # LD_PRELOAD 共享库 / Shared library
│ ├── sd720g_preload.c # 构造函数自动执行利用 / Constructor-based exploit
│ ├── arm.so # 已编译 ARM64 .so (16 KB)
│ └── compile_preload.bat # 编译脚本 / Build script
│
├── tools/ # 分析与提取脚本 / Analysis & extraction scripts
│ ├── extract_kallsyms.py # 纯 Python kallsyms 解析器 (PIE 感知) / kallsyms parser
│ ├── extract_symbols.py # 符号偏移提取器 / Symbol offset extractor
│ ├── find_ghostlock_bug.py # 二进制搜索 pi_blocked_on=NULL 模式 / Bug pattern search
│ ├── reanalysis.py # 0x105aeb0 与 rb_erase 调用链追踪 / Call chain trace
│ ├── trace_waiter.py # rt_mutex_waiter 字段写操作搜索 / Field write search
│ ├── analyze_pi_state.py # pi_state 分配/释放生命周期分析 / Lifecycle analysis
│ └── kgsl_uaf_test.c # KGSL GPU UAF 触发测试 / GPU UAF trigger test
│
├── docs/ # 综合分析文档 / Analysis documents
│ ├── CVE2026-43499_SD720G_分析.md # 完整分析报告(中文)/ Full analysis report
│ ├── GHOSTLOCK_SD720G_PORT_RECORD.md # 移植记录与发现 / Porting record
│ ├── CVE2026-43499_SD720G_参考数据汇总.md # 参考数据与符号表 / Reference data
│ ├── ALTERNATIVE_STRATEGY.md # 替代攻击路径 / Alternative paths
│ ├── HEAP_ANALYSIS.md # 堆 / pi_state 生命周期 / Heap lifecycle
│ ├── STACK_ANALYSIS.md # 栈回收可行性 / Stack reclaim feasibility
│ ├── WRITE_PRIMITIVE.md # 写原语研究 / Write primitive research
│ ├── BOOT_ANALYSIS.md # 启动镜像结构 / Boot image structure
│ └── FINAL_ANALYSIS.md # 最终结论 / Final conclusions
| Élément | Description |
|---|---|
| Fuite KASLR | perf_event_open fonctionne via PERF_TYPE_SOFTWARE (paranoid=-1) |
| Course futex PI | EDEADLK (errno=35) confirme que le chemin de deadlock est atteignable |
| Extraction de symboles | 37 symboles extraits de kallsyms (dont commit_creds, prepare_kernel_cred, init_task, etc.) |
| Chargement LD_PRELOAD | arm.so compile correctement et peut être chargé et exécuté sur l'appareil |
| Élément | Raison |
|---|---|
| Mutex RT bitmap Qualcomm | rt_mutex_adjust_prio_chain utilise une file de priorité bitmap au lieu du rbtree standard |
| Pas de waiter sur la pile | La trame de remove_waiter ne fait que 0x30 (48 octets), sans struct rt_mutex_waiter locale |
| Code mort | remove_waiter (0xCEAA0) n'a aucun appelant direct dans le binaire du noyau |
| Pas de chaîne rb_erase | 0x105aeb0 est une fonction de manipulation de ring buffer, pas rb_erase |
| Cycle de vie de pi_state | Utilise refcount+RCU au lieu d'un kfree direct, contrairement au Linux standard |
| Big.LITTLE | La fuite mm_struct de KernelSnitch échoue sur les CPU hétérogènes A76+A53 |
| CONFIG_CRYPTO_USER_API_AEAD | Non activée — CVE-2026-31431 (Copy Fail) non exploitable |
CVE-2026-43499 漏洞存在 / Vulnerability exists: ✅ (str xzr at 0xdbf10)
标准 IonStack 利用链 / Standard exploit chain: ❌ (Qualcomm 代码不同 / Code differs)
替代写原语 / Alternative write primitive: ⚠️ 当前分析未找到 / Not found
# 推送文件 / Push files
adb push preload/arm.so /data/local/tmp/
adb push exploit/perf_leak /data/local/tmp/
adb shell chmod 755 /data/local/tmp/arm.so /data/local/tmp/perf_leak
# 第一步:泄露 KASLR 基址 / Step 1: Leak KASLR base
adb shell /data/local/tmp/perf_leak
# 第二步:触发 GhostLock 竞争 / Step 2: Trigger GhostLock race
adb shell LD_PRELOAD=/data/local/tmp/arm.so env
# 崩溃后查看 dmesg / After crash, check dmesg
adb shell dmesg | grep -A 30 "PC\|Call trace\|Internal error"
Uniquement à des fins de recherche
Le contenu de ce dépôt est destiné uniquement à la recherche en cybersécurité et à des fins défensives. Les auteurs ne sont pas responsables de toute mauvaise utilisation.
Généré par DeepSeek AI
Tout le code et les analyses de ce dépôt ont été générés avec l'assistance de DeepSeek AI, à titre de référence pédagogique et de recherche uniquement.