
Strumento proof-of-concept per l'escalation dei privilegi locali che sfrutta una vulnerabilità del kernel XFRM/ESP (CVE-2026-43503) tramite payload crittografati AES-CBC appositamente realizzati, consegnati attraverso lo stack di rete per patchare la cache delle pagine del binario SUID.
DirtyClone è uno strumento diagnostico proof-of-concept per l'elevazione locale dei privilegi, scritto in C. Prende di mira un percorso di sfruttamento correlato a kernel/XFRM descritto nel sorgente come CVE-2026-43503 ed è destinato esclusivamente a ricerche di sicurezza autorizzate in ambienti controllati.
Questa repository contiene:
L'implementazione attuale esegue i seguenti passaggi di alto livello:
Questo strumento è destinato esclusivamente a test di sicurezza autorizzati. Eseguirlo su sistemi senza autorizzazione esplicita può essere illegale e può compromettere l'integrità del sistema.
Installare prima il pacchetto di sviluppo OpenSSL richiesto:
# Debian/Ubuntu
sudo apt-get install libssl-dev
# Fedora
sudo dnf install openssl-devel
# Arch Linux
sudo pacman -S openssl
Quindi compilare il binario:
gcc -o dirtyclone dirtyclone.c -lcrypto -Wall -O2
Eseguire il programma con:
./dirtyclone
Argomenti opzionali:
./dirtyclone -q # quiet mode
./dirtyclone -v # verbose mode (default)
./dirtyclone -h # show help
In fase di esecuzione il programma:
L'exploit si basa su un'idea semplice: il programma prepara un payload ESP/XFRM appositamente costruito che induce il kernel a decrittare i dati in una regione di memoria basata sulla cache delle pagine, quindi verifica se i byte del binario SUID di destinazione sono cambiati.
In termini pratici, il programma esegue le seguenti azioni:
/usr/bin/su, e lo mappa in memoria;Questo è un flusso proof-of-concept, non un framework generico di elevazione dei privilegi. È pensato per dimostrare il meccanismo dell'exploit e per aiutare a verificare se un kernel di destinazione espone ancora il comportamento vulnerabile.
Il seguente esempio semplificato mostra lo stesso concetto ad alto livello:
#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;
}
Il progetto reale usa lo stesso principio, ma confeziona il payload come un pacchetto in stile ESP/XFRM e guida il percorso del kernel attraverso lo stack di rete invece di una semplice copia in memoria.
Fase di setup
Preparazione XFRM
Costruzione del payload
Fase di consegna
Verifica ed esecuzione
L'implementazione include:
atexit e gestori di segnali,fork/execvp,Il sorgente richiede un ambiente Linux con:
ip, iptables e modprobe disponibili sul sistema,/usr/bin/su,Il programma è pensato per mostrare un riepilogo PoC diagnostico e quindi:
Se l'exploit non si attiva, il programma stampa un messaggio chiaro che suggerisce che il kernel è probabilmente patchato.
Utilizza questo progetto solo quando:
Non eseguire mai questo codice su sistemi di produzione o su sistemi che non sei autorizzato a valutare.
L'header del sorgente identifica l'autore come MrAashish0x1 (gl1tch0x1). La repository non include un file di licenza separato, quindi il codice deve essere trattato come materiale di ricerca piuttosto che come software di produzione.