Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ghostlock-s26 — GhostLock (CVE-2026-43499) para o Galaxy S26 | Kitploit
Ferramentas/GitHubGitHub/snothin/ghostlock-s26
Segurança AndroidEscalada de PrivilégiosMecanismos de PersistênciaExploraçãoPós-ExploraçãoSegurança MóvelDesenvolvimento de PayloadsExploração de Binários
GitHubsnothin/ghostlock-s26

ghostlock-s26

GhostLock (CVE-2026-43499) para o Galaxy S26

Ver Repositório
268131há 18 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

GhostLock (CVE-2026-43499) para o Galaxy S26

CVE-2026-43499 portado para a série Samsung Galaxy S26 — Android 16 / GKI 6.12. Um binário, três linhas de kernel, correspondência dinâmica de parâmetros em tempo de execução: teoricamente cobre toda a série S26 sem compilação por build.

A maioria dos esforços de portabilidade do GhostLock visa um único dispositivo ou um único firmware. Este repositório é um port novo que reescreve todos os mecanismos para o alvo S26 e espera-se que cubra toda a família

Anúncio

https://github.com/diabl0w/DFRoot por @diabl0w é uma solução mais simples e melhor. Recomendo usá-la.

O exploit neste repositório foi integrado em https://github.com/snothin/GhostSam. O GhostSam é mais complexo; o DFRoot é mais puro e simples.

Visão geral

Enquanto mantinha o snothin/CyberMeowfia, descobri que o canal physrw original do pipe era instável (cortava a rede), então abandonei essa rota e explorei alternativas. Mais tarde descobri que o monovibe tinha ido mais longe no caminho que eu estava explorando, adotei a abordagem e, após depuração repetida, este repositório tomou forma.

  • Bug: corrida use-after-free do futex PI → seeding do fd_set do pselect → uma escrita alinhada de qword no kernel → leitura/escrita arbitrária no kernel.
  • Dispositivos: Galaxy S26 / S26+ / S26 Ultra, variantes Snapdragon (CN + intl) e Exynos.
  • Resultado: o usermode helper é executado como uid=0(root) context=u:r:kernel:s0; shell root persistente via su_daemon em /data/local/tmp/temp_su.sock.
  • Bypass do KDP: sem escritas de credenciais — o estágio root forja um work_struct em system_unbound_wq cuja função é call_usermodehelper_exec_work, então o kernel executa nosso daemon com credenciais de init. A proteção EL2 do KDP sobre páginas de credenciais nunca é acionada.
  • Bypass do DEFEX: o late-load do ksud é bind-montado sobre um binário de sistema dormente (logcat) antes do exec; a regra safeplace do DEFEX vê um caminho na whitelist.

Fluxo do ataque

tracefs slide oracle → KASLR base
pselect + futex PI race
  → one aligned qword kernel write
  → attr carrier (controller + data misc nodes)
      the write links both nodes
      clearing controller.minor makes the next open land on data
      data fd reads/writes any kernel address
  → UMH root (workqueue injection)
      forged work_struct on system_unbound_wq
      ptmx open/close storm wakes a worker
      kernel execs daemon with init creds
  → KernelSU late-load: ksud bind-mounted over logcat in a private
    mount namespace (DEFEX safeplace sees a whitelisted path)
  → su_daemon keeps serving /data/local/tmp/temp_su.sock

Firmware suportado

Os parâmetros são correspondidos por linha de kernel (três linhas: cn, intl, exynos), não por build individual. Builds OTA desconhecidos recorrem à linha conhecida mais próxima por modelo e CSC. Modelos completamente desconhecidos são rejeitados (fail-closed). A lista de builds incorporada é autoritativa em exploit/src/params_table.c. Uma linha de kernel personalizada para firmware não listado pode ser fornecida em tempo de execução (/data/local/tmp/ghostlock-lines.conf, veja Ambiente). Veja PORTING.md para os parâmetros necessários ao portar para um novo dispositivo ou firmware.

ModeloCodinome do dispositivoBuilds testados
SM-S942x (S26 Snapdragon)m1qS9420ZCS4AZG1, S942QOPU1AZDE, S942U1UES4AZG3, S942USQS4AZG3
SM-S947x (S26+ Snapdragon)m2qS9470ZCS4AZG1, S947USQS4AZG3
SM-S9480 (S26 Ultra CN)m3qS9480ZCS3AZF1, S9480ZCS4AZG1 (build testado)
SM-S948x (S26 Ultra)m3qS9480ZHS4AZG1, S948BXXS4AZG5/6, S948NKSS4AZG3, S948U1UES2AZE1, S948USQS4AZG3
SM-S942B (S26 Exynos)m1sS942BXXS4AZG5
SM-S947B (S26+ Exynos)m2sS947BXXS3AZF1, S947BXXS4AZG5

Compilação

Requer o Android NDK (r26+). Basta executar:

cd exploit
make preload
# produces build/bin/preload.so (exploit) and build/embed/su_daemon_aarch64_pie (embedded daemon)

Uso

Envie preload.so, su_daemon_aarch64_pie e ksud para o dispositivo (execute a partir de uma sessão de shell adb, uid 2000):

adb push exploit/build/bin/preload.so /data/local/tmp/
adb push exploit/build/embed/su_daemon_aarch64_pie /data/local/tmp/cve-2026-43499-root
adb push <ksud> /data/local/tmp/ksud
adb shell chmod 755 /data/local/tmp/cve-2026-43499-root /data/local/tmp/ksud

# Single attempt:
adb shell "env LD_PRELOAD=/data/local/tmp/preload.so sh"

O exploit é probabilístico (uma corrida) e geralmente precisa de tentativas repetidas. Em uma execução bem-sucedida, o su_daemon escuta em /data/local/tmp/temp_su.sock, e qualquer processo local pode se conectar.

A proteção de boot-claim (/data/local/tmp/ghostlock-boot.log) registra o resultado da execução de cada boot; uma segunda execução da cadeia completa no mesmo boot é rejeitada. Limpe o arquivo ou defina BOOT_FORCE=1 para ignorar.

Ambiente

Toda opção existe como variável de ambiente, chave de arquivo de configuração (/data/local/tmp/ghostlock.conf, um key=value por linha) e flag de CLI (--key=value); a precedência é padrões < arquivo < env < CLI. Executar com --help imprime a tabela completa (nomes, padrões, intervalos, flags de recarga).

Os interruptores de comportamento:

Variável de ambienteChaveEfeito
BOOT_FORCE=1boot.forcepermitir uma reexecução dentro do mesmo boot
GHOSTLOCK_NO_KSU=1ksu.skippular o late-load do KernelSU: root temporário permissivo + socket su apenas; reiniciar restaura o dispositivo (risco Knox)
ALLOW_SHELL=1root.allow_shelladicionar o uid do shell à allowlist do KernelSU durante o late-load
PARAMS_CUSTOM=1params.customusar apenas a linha de kernel personalizada (falha fechada se inutilizável)

As chaves restantes ajustam a corrida (walk.*, heap.*, ...). A linha exynos injeta KSUD_TREE=exynos para o ksud emparelhado (interface do driver 32601); outras linhas não carregam substituição de tree. Linhas de kernel personalizadas para firmware não listado vão em /data/local/tmp/ghostlock-lines.conf (line_id=... mais um campo por linha, veja PORTING.md).

Créditos

Baixar ferramenta