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
Fragnesia-go — Una implementación en Go de fragnesia (CVE-2026-46300) | Kitploit
Herramientas/GitHubGitHub/nonameuserosint-hue/fragnesia-go
Escalada de PrivilegiosExplotaciónExplotación de Binarios
GitHubnonameuserosint-hue/fragnesia-go

Fragnesia-go

Una implementación en Go de fragnesia (CVE-2026-46300)

Ver Repositorio
hace 3 mesesAún no revisado

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

fragnesia-go

Una SA. Un byte a la vez. Sin condiciones de carrera.

Implementación en Go de fragnesia (CVE-2026-46300). Miembro de la clase de vulnerabilidades Dirty Frag: error distinto, misma superficie, parche propio.

Cómo funciona (tl;dr)

El fallo está en el subsistema XFRM ESP-in-TCP de Linux. Cuando se instala TCP_ULP espintcp en un socket después de que los datos ya se hayan transferido con splice() desde un archivo a la cola de recepción TCP, el kernel trata los datos en cola como un registro de texto cifrado ESP y los descifra in situ. La fuente de esos datos es una página de la caché de páginas. El descifrado aplica un XOR con el flujo de claves AES-GCM directamente sobre ella.

El resultado es una escritura controlada de un solo byte en la caché de páginas de cualquier archivo legible.

Tabla de flujo de claves

El bloque de contador AES-GCM (RFC 4106) en la posición 2 es [salt(4) || IV(8) || 0x00000002]. Cifrarlo con la clave de sesión produce un bloque de flujo de claves de 16 bytes. El byte 0 de ese bloque es el que se aplica con XOR sobre el byte objetivo. Variando los 32 bits inferiores del nonce del IV, todos los 256 valores posibles de byte de flujo de claves se pueden alcanzar dentro de los primeros 65536 nonces. El exploit construye esta tabla de búsqueda una única vez al arrancar mediante AF_ALG AES-ECB.

Bucle de byte-flip

Para cada byte de la carga útil:

  1. Lee el valor actual del archivo (caché de páginas).
  2. Calcula needed_keystream = current XOR desired.
  3. Busca el nonce para ese byte de flujo de claves.
  4. Establece el IV y lanza un par de disparadores TCP (el emisor transfiere la página del archivo al socket con splice(), el receptor retrasa la instalación de TCP_ULP hasta que los datos estén en cola).
  5. Resultado: current XOR keystream = current XOR (current XOR desired) = desired.

Una SA. Máximo 192 disparadores. Determinista.

Uso

root@kitploit:~
go build -o fragnesia-go .
./fragnesia-go

En caso de éxito, ofrece una shell de root a través de una PTY nueva. El binario en disco se mantiene intacto; solo se modifica la caché de páginas.

Limpieza

root@kitploit:~
echo 1 | tee /proc/sys/vm/drop_caches

Requisitos

  • Linux: kernel sin parchear (ver más abajo)
  • Sin herramientas externas: Go puro, binario estático único
  • Módulo del kernel: esp6 (modo transporte, loopback IPv6)

Kernels afectados

Todos los kernels anteriores al parche: https://lists.openwall.net/netdev/2026/05/13/79

Mismo rango que dirtyfrag.

Mitigación

Igual que dirtyfrag:

root@kitploit:~
rmmod esp4 esp6
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\n' \
  > /etc/modprobe.d/fragnesia.conf

Comparación con dirtyfrag-go

Referencias

  • v12-security/pocs - fragnesia - PoC original en C
  • CVE-2026-46300 - Red Hat
  • Parche del kernel

Créditos

  • William Bowling / equipo V12 - descubrimiento de la vulnerabilidad y PoC original
Descargar herramienta
dirtyfrag-gofragnesia-go
CVECVE-2026-43284 / CVE-2026-43500CVE-2026-46300
TransporteESP-in-UDP + RxRPCESP-in-TCP (ULP)
Granularidad de escritura4 bytes por disparo1 byte por disparo
SA XFRM481
CriptografíaHMAC-SHA256 + CBC-AESAES-128-GCM
Familia de IPIPv4IPv6