HYCQAQ/Logitech-G-Cloud-GhostLock-CVE-2026-43499

GitHub: HYCQAQ/Logitech-G-Cloud-GhostLock-CVE-2026-43499

针对罗技 G Cloud 掌机(骁龙 720G)利用 GhostLock 漏洞(CVE-2026-43499)进行内核 root 提权尝试的研究项目,包含完整利用代码与分析文档。

Stars: 0 | Forks: 0

# 罗技云掌机 · GhostLock CVE-2026-43499 root 尝试 ## Logitech G Cloud — CVE-2026-43499 (GhostLock) Root 尝试 ## 状态 ## 设备信息 | 项目 | 值 | |-------------|------------| | 设备 | Logitech G Cloud (HALO) | | SoC | **Snapdragon 720G (SM7125, ATOLL)** | | GPU | Adreno 618 | | CPU | Kryo 465: 2×Cortex-A76 + 6×Cortex-A55 | | 内核 | **Linux 4.14.190-perf+** (Clang 10.0.7) | | 编译日期 | **2025-08-27** (scm@a9b0f71b66dc) | | Android 版本 | 11 | | Bootloader | 锁定,dm-verity 开启 | | KASLR | 开启(可通过 perf_event_open 绕过) | | SELinux | Enforcing | ## 仓库结构 ``` 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 │ └── reference/ # 参考利用代码 / Reference exploits ├── CyberMeowfia/ # NebuSec/CyberMeowfia IonStack 仓库 └── CVE43499/ # IonStack CVE-2026-43499 PoC ``` ## 关键发现 ### ✅ 已验证可用 | 项目 | 说明 | |-------------|-------------| | KASLR 泄露 | `perf_event_open` 通过 `PERF_TYPE_SOFTWARE` 可正常工作(paranoid=-1) | | Futex PI 竞争 | EDEADLK (errno=35) 确认死锁路径可达 | | 符号提取 | 从 kallsyms 提取 37 个符号(含 `commit_creds`, `prepare_kernel_cred`, `init_task` 等) | | LD_PRELOAD 加载 | `arm.so` 编译正常,设备上可加载执行 | ### ❌ 阻碍 | 项目 | 原因 | |-------------|---------------| | Qualcomm Bitmap RT Mutex | `rt_mutex_adjust_prio_chain` 使用 bitmap 优先队列替代标准 rbtree | | 无栈上 Waiter | `remove_waiter` 帧仅 0x30(48 字节),无局部 `struct rt_mutex_waiter` | | 死代码 | `remove_waiter` (0xCEAA0) 在内核二进制中**无直接调用者** | | 无 rb_erase 链 | 0x105aeb0 是 ring buffer 操作函数,不是 rb_erase | | pi_state 生命周期 | 使用 refcount+RCU 而非直接 kfree,与标准 Linux 不同 | | Big.LITTLE | KernelSnitch mm_struct 泄露在 A76+A53 异构 CPU 上失败 | | CONFIG_CRYPTO_USER_API_AEAD | 未启用 — CVE-2026-31431 (Copy Fail) 不可利用 | ### 📝 结论 ``` 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" ``` ## 参考资料 - [NebuSec/CyberMeowfia — IonStack CVE-2026-43499](https://github.com/NebuSec/CyberMeowfia) - [hexo141/Rootme — OnePlus PLQ110 GhostLock 移植](https://github.com/hexo141/Rootme) - [qhyz.holyfun.cn — MT6833 GhostLock 移植](https://qhyz.holyfun.cn/CVE202643499.html) - [Qualcomm ATOLL 平台 (SM7125) CodeLinaro](https://git.codelinaro.org/clo/la/kernel/msm-4.14) ## 许可证
标签:客户端加密, 逆向工具