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
page-cache-corruption-lpes — CVE-2026-46331 e CVE-2026-43503 | Kitploit
Ferramentas/GitHubGitHub/rjt-gupta/page-cache-corruption-lpes
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoCTFAprendizado e EducaçãoExploração de Binários
GitHubrjt-gupta/page-cache-corruption-lpes

page-cache-corruption-lpes

CVE-2026-46331 e CVE-2026-43503

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
Ver Repositório
123há 29 diasAinda não revisado

LPEs de Corrupção de Page Cache

3 exploits de escalonamento local de privilégios no kernel Linux. Mesma classe de bug que Dirty COW e Dirty Pipe. Shell root em segundos. Todas as principais distribuições afetadas.

Todos os três corrompem o page cache do kernel — a cópia em memória dos arquivos que os processos realmente leem e executam. O arquivo em disco nunca é tocado. Ferramentas de integridade de arquivos não veem nada. execve("/usr/bin/su") carrega do cache → executa seu shellcode → root.


Os Exploits

ExploitCVEMecanismoTempo até RootLinhas
Dirty PeditCVE-2026-46331lacuna de COW do TC pedit (wraparound de u32)< 1 segundo275
skb_shiftCVE-2026-43503perda de flag de transferência de frag no TCP SACK~10 segundos500
GRO Flag LossCVE-2026-43503perda de flag de transferência de frag na coalescência GRO~10 segundos550

Todos os três: sem privilégios → root. Nenhuma permissão especial. Apenas namespaces de usuário.


Qual é a Classe do Bug?

Cada exploit neste repositório segue o mesmo padrão:

root@kitploit:~
1. Get page-cache pages into a kernel buffer (splice)
2. Bypass the copy-on-write defense
3. Write in-place → read-only file corrupted in memory

O que difere é COMO a defesa é contornada e O QUE realiza a escrita:


A Linhagem

root@kitploit:~
2016  Dirty COW         COW race via mmap + fork
2022  Dirty Pipe        Stale PIPE_BUF_FLAG_CAN_MERGE in splice
2026  Copy Fail         AF_ALG in-place AEAD on page-cache scatterlist
2026  Dirty Frag        ESP skip_cow on splice'd frags (missing flag)
2026  Fragnesia         skb_try_coalesce drops SHARED_FRAG flag
2026  Dirty Pedit  ←    TC pedit COW gap, no crypto needed
2026  skb_shift    ←    TCP SACK drops SHARED_FRAG, ESP writes
2026  GRO Flag Loss ←   GRO merge drops SHARED_FRAG, ESP writes

Versões Afetadas

Configurações padrão. Nenhum hardening necessário para ser vulnerável. Se você roda Linux, você foi afetado.


Por que o Dirty Pedit é Diferente

skb_shift e GRO usam a mesma técnica de exploração: perder a flag SKBFL_SHARED_FRAG e então deixar a criptografia ESP fazer XOR nas páginas do page-cache um byte por vez usando uma tabela de consulta IV pré-computada.

Dirty Pedit é uma fera completamente diferente:

  • Sem criptografia. Sem XFRM, sem ESP, sem AES-GCM, sem tabelas IV.
  • Escrita direta. TC pedit escreve exatamente os bytes que você especifica via skb_store_bits.
  • Sub-segundo. Um pacote = 12 bytes escritos. Root de uma vez.
  • Contorno de defesa diferente. Não toca em SHARED_FRAG — quebra skb_ensure_writable por meio de wraparound de inteiro.

Compilar

root@kitploit:~
# Build all three
cd dirty_pedit && gcc -static -O2 -o exploit exploit.c && cd ..
cd skb_shift   && gcc -static -O2 -o exploit exploit.c && cd ..
cd gro         && gcc -static -O2 -o exploit exploit.c && cd ..

Cada exploit é um único arquivo C autocontido. Sem dependências além da libc.


Executar

root@kitploit:~
# Any of the three (as unprivileged user):
./exploit
# → root shell

Requisitos: kernel Linux na faixa de versões afetadas + CONFIG_USER_NS=y (padrão em todas as principais distribuições).


Saída (Dirty Pedit)

root@kitploit:~
[*] Dirty Pedit — Local Privilege Escalation
[*] uid=1000 pid=42
[*] Victim line at offset 186: nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
[*] Injecting user 'a' (uid=0, no password) over victim line...
[+] User 'a' injected with uid=0!
[+] Running: su a
# id
uid=0(root) gid=0(root) groups=0(root)

Saída (skb_shift / GRO)

root@kitploit:~
[*] uid=1000 euid=1000
[*] IV table pre-computed (256 entries)
[*] Writing 192 bytes to /usr/bin/su...
  [120] 0x00→0x48 ... OK
  [121] 0x00→0x31 ... OK
[*] Write complete: 192/192
[!] /usr/bin/su page cache overwritten!
# whoami
root

Propriedades Principais


Divulgação Responsável

Todas as vulnerabilidades foram divulgadas de forma responsável à equipe de segurança do kernel Linux e aos mantenedores de rede. Os patches foram mesclados upstream e retroportados para as árvores estáveis.

  • CVE-2026-46331: Corrigido em v7.1-rc7, commit 899ee91156e5
  • CVE-2026-43503: Corrigido em v7.1-rc5, commit 48f6a5356a33

Estes exploits são publicados para fins educacionais e defensivos após os patches estarem disponíveis. A corrupção do page cache é apenas em memória — reiniciar ou echo 1 > /proc/sys/vm/drop_caches restaura os arquivos originais.


Autor

Rajat Gupta — Segurança Ofensiva @ Qualcomm


Licença

MIT

Baixar ferramenta
ExploitDefesa ContornadaEscritor
Dirty Peditskb_ensure_writable (wraparound de u32 → COW parcial)skb_store_bits (escrita direta de 4 bytes)
skb_shiftflag SKBFL_SHARED_FRAG perdida durante TCP SACKdescriptografia ESP AES-GCM (1 byte por pacote)
GRO Flag Lossflag SKBFL_SHARED_FRAG perdida durante a fusão GROdescriptografia ESP AES-GCM (1 byte por pacote)
ExploitIntroduzidoCorrigidoDistribuições Afetadas
Dirty Peditv5.18 (maio de 2022)v7.1-rc7Ubuntu, RHEL, Debian, Fedora, SUSE
skb_shiftv3.9 (2013)v7.1-rc5Todas as distribuições por 13 anos
GRO Flag Lossv3.9 (2013)v7.1-rc5Todas as distribuições por 13 anos
PropriedadeDirty Peditskb_shiftGRO
PrivilégiosNenhum (userns)Nenhum (userns)Nenhum (userns)
Acesso a arquivosO_RDONLYO_RDONLYO_RDONLY
Criptografia necessáriaNãoSim (AES-GCM)Sim (AES-GCM)
Controle de escrita4 bytes/pacote1 byte/pacote1 byte/pacote
ConfiabilidadeDeterminísticoDeterminísticoProbabilístico (repetição)
Escape de contêiner K8sNão (sem necessidade de veth)NãoSim (veth+GRO por padrão)
Superfície de ataquegeneve + TCloopback + espintcpveth + ESP-in-UDP