Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-43494-PinTheft-PoC — Prova de conceito para CVE-2026-43494 (PinTheft): escalonamento de privilégio local no kernel Linux explorando um bug de contagem de referência zerocopy RDS com buffers fixos io_uring para sobrescrever o cache de página de binário SUID. | Kitploit
Ferramentas/GitHubGitHub/letsr00t/cve-2026-43494-pintheft-poc
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoCTFAprendizado e EducaçãoExploração de BináriosLabs e Prática
GitHubletsr00t/cve-2026-43494-pintheft-poc

CVE-2026-43494-PinTheft-PoC

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

Prova de conceito para CVE-2026-43494 (PinTheft): escalonamento de privilégio local no kernel Linux explorando um bug de contagem de referência zerocopy RDS com buffers fixos io_uring para sobrescrever o cache de página de binário SUID.

Ver Repositório
14há 1 mêsAinda não revisado

SLEY — PoC do PinTheft (CVE-2026-43494)

SLEY PoC — uid 1000 para root no WSL2

Prova de conceito — uid=1000(raken) → uid=0(root) após ./sley no WSL2 (6.6.87.2-microsoft-standard-WSL2)

CVE-2026-43494 Linux LPE io_uring RDS

Prova de conceito em arquivo único para CVE-2026-43494 (PinTheft): uma escalada local de privilégios do kernel Linux que combina um bug de contagem de referências no zerocopy do RDS com buffers fixos do io_uring para sobrescrever o page cache de um binário SUID root.

Aviso: Este repositório destina-se somente a pesquisa de segurança autorizada, educação e testes defensivos. Executá-lo contra sistemas que você não possui ou sem permissão explícita para testar é ilegal e antiético. Os autores não assumem nenhuma responsabilidade por uso indevido.


Visão geral

A pesquisa pública original e o PoC foram publicados pela equipe V12 Security (Aaron Esau). O SLEY é uma reimplementação independente e compacta, com uma interface de terminal estilizada para uso em laboratório e aprendizado.


Como funciona

root@kitploit:~
flowchart LR
    A[mmap anonymous page] --> B[io_uring: register fixed buffer]
    B --> C[Clone buffer table to 2nd ring]
    C --> D[1024× failing RDS zerocopy sends]
    D --> E[Drain FOLL_PIN bias / steal refs]
    E --> F[munmap → page freed]
    F --> G[SUID binary page reclaimed in page cache]
    G --> H[Stale io_uring ptr writes ELF stub]
    H --> I[exec SUID → root shell]
  1. Reconhecimento — Fixar na CPU 0, localizar um binário SUID legível (su, mount, passwd, …).
  2. Configuração do io_uring — Registrar a página anônima como buffer fixo (viés FOLL_PIN ≈ 1024).
  3. Roubo de pin — Inundar com envios zerocopy do RDS com falha; cada falha pode remover uma referência extra da primeira página fixada.
  4. Reclaim e sobrescrita — O unmap libera a página; reabrir o alvo SUID disputa o reclaim do page cache; os metadados obsoletos do buffer fixo permitem gravar um pequeno stub ELF x86_64 no cache.
  5. Privesc — O execve do binário SUID executa o stub injetado como root.

Requisitos

Kernel / configuração

  • Kernel Linux vulnerável (sem patch) com o bug do RDS presente
  • CONFIG_RDS=y e CONFIG_RDS_TCP=y
  • CONFIG_IO_URING=y e kernel.io_uring_disabled = 0
  • Módulos rds / rds_tcp carregados (ou autocarregáveis por usuários sem privilégios)
  • Kernel ≥ 6.13 para a API IORING_REGISTER_CLONE_BUFFERS usada pela cadeia pública
  • x86_64 para o payload ELF de shell embutido neste PoC

Ferramentas de build

root@kitploit:~
sudo apt install build-essential linux-libc-dev   # Debian/Ubuntu
# or equivalent headers package on your distro

Permissões

  • Um usuário local sem privilégios é suficiente em um host vulnerável (esse é o modelo de ameaça)
  • Não execute em sistemas de produção

Verificar exposição (somente leitura)

root@kitploit:~
# Patched? (example — adjust for your distro)
uname -r
grep -r CVE-2026-43494 /usr/share/doc/linux* 2>/dev/null || true

# RDS available?
grep CONFIG_RDS /boot/config-$(uname -r) 2>/dev/null
lsmod | grep -E '^rds'

# io_uring enabled?
cat /proc/sys/kernel/io_uring_disabled  # expect 0

Compilação

root@kitploit:~
gcc -O2 -Wall -Wextra -o sley sley.c

Linkagem estática (opcional, para imagens mínimas de laboratório):

root@kitploit:~
gcc -O2 -static -o sley sley.c

Uso

root@kitploit:~
./sley

Toda a saída de status vai para stderr (interface ANSI de 256 cores, barra de progresso, registro por fases). Certifique-se de que seu terminal suporte UTF-8 e truecolor/256 cores para a interface com caracteres de caixa (box-drawing).

Exemplo de fases:

root@kitploit:~
PHASE 1 │ Reconnaissance
PHASE 2 │ Memory & io_uring setup
PHASE 3 │ Pin reference theft (RDS zerocopy)
PHASE 4 │ Page cache overwrite & privesc

Resultado esperado (host vulnerável)

Em uma configuração explorada com sucesso, a cadeia é concluída e repassa o controle ao binário SUID descoberto com a primeira página sobrescrita — resultando em um shell root se a corrida (race) e o estado do kernel se alinharem.

Em kernels corrigidos, hosts endurecidos ou com RDS/io_uring ausentes, o PoC falhará precocemente (sem alvo SUID, erros de mmap/io_uring/socket, etc.).


Mitigação

Avisos de segurança específicos de cada distribuição podem trazer patches com backport — acompanhe a fila de segurança do kernel do seu fornecedor.


Estrutura do projeto

root@kitploit:~
.
├── README.md              # This file
├── proof-of-concept.jpg   # Screenshot: successful LPE (uid 1000 → root)
├── sley.c                 # Single-file PoC + terminal UI
└── .gitignore

Referências

  • NVD — CVE-2026-43494
  • oss-security — Discussão sobre PinTheft
  • Commit da correção do kernel

Aviso legal

Este software é fornecido como está (as-is) para pesquisa e educação. Você é responsável por cumprir as leis aplicáveis e obter autorização por escrito antes de testar qualquer sistema que não possua.


Licença

MIT — consulte o arquivo de licença do repositório, se adicionado. Use com responsabilidade.

Baixar ferramenta
ItemDetalhe
CVECVE-2026-43494
Nome públicoPinTheft
Componentenet/rds — caminho de envio zerocopy (rds_message_zcopy_from_user)
Primitivaput_page() duplicado quando a fixação da página falha → rouba referências FOLL_PIN
Armamentobuffer fixo do io_uring + zerocopy do RDS com falha → escrita UAF no page cache
ImpactoRoot local em configurações vulneráveis
Correção upstreame17492979319
AçãoNotas
Aplicar patch no kernelAplicar a correção estável contendo o commit e17492979319
Desabilitar RDSmodprobe -r rds_tcp rds (e bloquear o autoload) se não for necessário
Restringir io_uringkernel.io_uring_disabled=1 ou 2 via sysctl
Menor privilégioRemover binários SUID desnecessários; usar contêineres com perfis endurecidos
MonitorarAlertar sobre rajadas de falhas de zerocopy do RDS + padrões de registro de buffers do io_uring