
CVE-2026-43499 (GhostLock) adaptação para ASUS ROG Phone 5S — gatilho UAF + recuperação de pilha pselect, vazamento de KASLR bloqueado
Estudo de adaptação do CVE-2026-43499 (GhostLock) no ASUS ROG Phone 5S (ASUS_I005).
Conclusão: o disparo da vulnerabilidade e a recuperação de pilha foram totalmente verificados; a cadeia de escalada de privilégios não foi concluída devido à profundidade insuficiente de sobrescrita da pilha.
Especificamente:
waiter+0x28..0x40 (pi_tree_entry.rb_left e lock)waiter+0x27Análise detalhada em docs/05-limitations.md.
| Fase | Conteúdo | Status |
|---|---|---|
| 0 | Disparo de UAF (3 threads + CMP_REQUEUE_PI) | ✅ |
| 1 | Recuperação de pilha com pselect timeout=0 (shift=10) | ✅ |
| 1.6 | Vazamento de SP da pilha do kernel de W (perf PERF_SAMPLE_REGS_INTR) | ✅ |
| 2 | Escrita em endereço arbitrário (requer KASLR slide) | ❌ |
| — | Vazamento de KASLR (todas as 8 fontes falharam) | ❌ |
| Item | Valor |
|---|---|
| Dispositivo | ASUS ROG Phone 5S (ASUS_I005) |
| SoC | Snapdragon 888 (SM8350) |
| Android | 13 |
| Kernel | 5.4.210-qgki-perf-gc89cd02a7dfe arm64 |
| SELinux | Enforcing (u:r🐚s0) |
| CapEff | 0 |
CVE-2026-43499 (GhostLock) é um UAF de pilha no subsistema rtmutex do kernel Linux.
remove_waiter() usa current em vez de waiter->task no caminho de reversão do bloqueio proxy,
resultando em um ponteiro pendente residual em task_struct->pi_blocked_on.
_copy_from_user ainda é executadoPSELECT_WAITER_WORD_SHIFT = 10Ver docs/05-limitations.md:
docs/ Documentos de análise e linha do tempo
06-research-snapshot.md Instantâneo completo da pesquisa07-iteration-log.md Registro de versões malsucedidasdisasm/ Trechos-chave de desmontagemrecon/ Saída de reconhecimentoinclude/ Tabela de símbolos + offsets de estruturassrc/ Código-fonte do PoC (ver src/README.md)scripts/ Scripts de análiselogs/ Logs de execução (não versionados no git)# 1. Extrair símbolos e offsets (requer vmlinux compilado a partir do código-fonte oficial do kernel da ASUS)
./scripts/extract_symbols.sh
./scripts/gen_symbols_h.sh
./scripts/extract_offsets.sh
# 2. Compilar Stage 0
aarch64-linux-gnu-gcc -static -O2 -pthread \
-o ~/tmp/work/bin/poc_stage0_trigger src/poc_stage0_trigger.c
# 3. Executar no dispositivo (requer adb shell no dispositivo alvo)
adb shell /data/local/tmp/poc_stage0_trigger
Toolchain: aarch64-linux-gnu-gcc -static -O2 -pthread
Referências
· gitchw/ghostlock-cve-2026-43499 Huawei Watch 4 Pro, 5.4.210 (ARM32)
· ccp-p/ghostlock-cve-2026-43499-4.19-k40 Redmi K40, 4.19.157 (aarch64)
· JoinChang/ghostlock-oneplus vários dispositivos OnePlus, viabilidade do layout de pilha
· knowlily/cve-2026-43499-honor análise de falha no Honor
Aviso legal
Apenas para pesquisa de segurança. Não use em dispositivos não autorizados.