Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
page-cache-corruption-lpes — CVE-2026-46331 y CVE-2026-43503 | Kitploit
Herramientas/GitHubGitHub/rjt-gupta/page-cache-corruption-lpes
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónCTFAprendizaje y EducaciónExplotación de Binarios
GitHubrjt-gupta/page-cache-corruption-lpes

page-cache-corruption-lpes

CVE-2026-46331 y CVE-2026-43503

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
123hace 29 díasAún no revisado

LPEs de corrupción de caché de páginas

3 exploits de escalada local de privilegios del kernel de Linux. Misma clase de bug que Dirty COW y Dirty Pipe. Shell root en segundos. Todas las principales distros afectadas.

Los tres corrompen la caché de páginas del kernel — la copia en memoria de los archivos que los procesos realmente leen y ejecutan. El archivo en disco nunca se toca. Las herramientas de integridad de archivos no ven nada. execve("/usr/bin/su") se carga desde la caché → ejecuta tu shellcode → root.


Los Exploits

ExploitCVEMecanismoTiempo hasta rootLíneas
Dirty PeditCVE-2026-46331Hueco COW de TC pedit (wrap-around u32)< 1 segundo275
skb_shiftCVE-2026-43503Pérdida de flag de transferencia de frag en TCP SACK~10 segundos500
GRO Flag LossCVE-2026-43503Pérdida de flag de transferencia de frag en la fusión GRO~10 segundos550

Los tres: no privilegiado → root. Sin permisos especiales. Solo user namespaces.


¿Cuál es la clase de bug?

Cada exploit en este repositorio sigue el mismo patrón:

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

Lo que difiere es CÓMO se evade la defensa y QUÉ realiza la escritura:


El Linaje

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

Versiones Afectadas

Configuraciones por defecto. Sin endurecimiento necesario para ser vulnerable. Si usas Linux, estabas afectado.


Por qué Dirty Pedit es diferente

skb_shift y GRO usan la misma técnica de explotación: pierden el flag SKBFL_SHARED_FRAG, y luego dejan que la criptografía ESP haga XOR en las páginas de la caché un byte a la vez usando una tabla de búsqueda IV precomputada.

Dirty Pedit es una bestia completamente diferente:

  • Sin criptografía. Sin XFRM, sin ESP, sin AES-GCM, sin tablas IV.
  • Escritura directa. TC pedit escribe exactamente los bytes que especifiques mediante skb_store_bits.
  • Sub-segundo. Un paquete = 12 bytes escritos. Root de una sola vez.
  • Evade una defensa diferente. No toca SHARED_FRAG en absoluto — rompe skb_ensure_writable mediante wrap-around de enteros.

Compilación

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 es un único archivo C autocontenido. Sin dependencias más allá de libc.


Ejecución

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

Requiere: kernel de Linux en el rango de versiones afectado + CONFIG_USER_NS=y (por defecto en todas las distros principales).


Salida (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)

Salida (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

Propiedades clave


Divulgación responsable

Todas las vulnerabilidades fueron divulgadas de manera responsable al equipo de seguridad del kernel de Linux y a los mantenedores de redes. Los parches están fusionados upstream y retroportados a los árboles estables.

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

Estos exploits se publican con fines educativos y defensivos después de que los parches estuvieran disponibles. La corrupción de la caché de páginas es solo memoria — reiniciar o echo 1 > /proc/sys/vm/drop_caches restaura los archivos originales.


Autor

Rajat Gupta — Seguridad Ofensiva @ Qualcomm


Licencia

MIT

Descargar herramienta
ExploitDefensa evadidaEscritor
Dirty Peditskb_ensure_writable (wrap-around u32 → COW parcial)skb_store_bits (escritura directa de 4 bytes)
skb_shiftflag SKBFL_SHARED_FRAG perdido durante TCP SACKDescifrado ESP AES-GCM (1 byte por paquete)
GRO Flag Lossflag SKBFL_SHARED_FRAG perdido durante la fusión GRODescifrado ESP AES-GCM (1 byte por paquete)
ExploitIntroducidoCorregidoDistros afectadas
Dirty Peditv5.18 (mayo de 2022)v7.1-rc7Ubuntu, RHEL, Debian, Fedora, SUSE
skb_shiftv3.9 (2013)v7.1-rc5Todas las distros durante 13 años
GRO Flag Lossv3.9 (2013)v7.1-rc5Todas las distros durante 13 años
PropiedadDirty Peditskb_shiftGRO
PrivilegiosNinguno (userns)Ninguno (userns)Ninguno (userns)
Acceso a archivoO_RDONLYO_RDONLYO_RDONLY
Criptografía necesariaNoSí (AES-GCM)Sí (AES-GCM)
Control de escritura4 bytes/paquete1 byte/paquete1 byte/paquete
FiabilidadDeterministaDeterministaProbabilística (reintento)
Escape de contenedor K8sNo (no se necesita veth)NoSí (veth+GRO por defecto)
Superficie de ataquegeneve + TCloopback + espintcpveth + ESP-in-UDP