
DirtyClone - prueba de concepto de escalada de privilegios local (LPE) dirigida a una vulnerabilidad relacionada con el kernel/XFRM descrita en la fuente como CVE-2026-43503
DirtyClone es una herramienta de escalada de privilegios local de diagnóstico y prueba de concepto escrita en C. Apunta a una ruta de explotación relacionada con kernel/XFRM descrita en la fuente como CVE-2026-43503 y está destinada únicamente a investigación de seguridad autorizada en entornos controlados.
Este repositorio contiene:
La implementación actual realiza los siguientes pasos de alto nivel:
Esta herramienta está destinada únicamente a pruebas de seguridad autorizadas. Ejecutarla en sistemas sin permiso explícito puede ser ilegal y afectar la integridad del sistema.
Primero instale el paquete de desarrollo de OpenSSL necesario:
# Debian/Ubuntu
sudo apt-get install libssl-dev
# Fedora
sudo dnf install openssl-devel
# Arch Linux
sudo pacman -S openssl
Luego compile el binario:
gcc -o dirtyclone dirtyclone.c -lcrypto -Wall -O2
Ejecute el programa con:
./dirtyclone
Argumentos opcionales:
./dirtyclone -q # modo silencioso
./dirtyclone -v # modo verboso (predeterminado)
./dirtyclone -h # mostrar ayuda
En tiempo de ejecución el programa:
El exploit se basa en una idea simple: el programa prepara un payload ESP/XFRM manipulado que hace que el kernel descifre datos en una región de memoria respaldada por caché de páginas, y luego comprueba si los bytes en el binario SUID objetivo han cambiado.
En términos prácticos, el programa realiza las siguientes acciones:
/usr/bin/su, y lo mapea en memoria;Este es un flujo de prueba de concepto, no un marco de escalada de privilegios de propósito general. Está diseñado para demostrar el mecanismo del exploit y ayudar a verificar si un kernel objetivo aún expone el comportamiento vulnerable.
El siguiente ejemplo simplificado muestra el mismo concepto a alto nivel:
#include <stdio.h>
#include <string.h>
static int dummy_exploit(unsigned char *target_bytes) {
unsigned char expected[] = {0x31, 0x0f, 0x05};
memcpy(target_bytes, expected, sizeof(expected));
return 0;
}
int main(void) {
unsigned char target[16] = {0};
dummy_exploit(target);
printf("Patched bytes: %02x %02x %02x\n", target[0], target[1], target[2]);
return 0;
}
El proyecto real usa el mismo principio, pero empaqueta el payload como un paquete estilo ESP/XFRM y conduce la ruta del kernel a través de la pila de red en lugar de una simple copia de memoria.
Fase de configuración
Preparación de XFRM
Construcción del payload
Fase de entrega
Verificación y ejecución
La implementación incluye:
atexit y manejadores de señales,fork/execvp,La fuente espera un entorno Linux con:
ip, iptables y modprobe disponibles en el sistema,/usr/bin/su,El programa está diseñado para mostrar un resumen PoC de diagnóstico y luego:
Si el exploit no se dispara, el programa imprime un mensaje claro sugiriendo que el kernel probablemente está parcheado.
Use este proyecto solo cuando:
Nunca ejecute este código en sistemas de producción o sistemas para los que no tenga permiso de evaluación.
El encabezado de la fuente identifica al autor como MrAashish0x1 (gl1tch0x1). El repositorio no incluye un archivo de licencia separado, por lo que el código debe tratarse como material de investigación, no como software de producción.