
DirtyClone - prova de conceito de escalada local de privilégios (LPE) que explora uma vulnerabilidade relacionada ao kernel/XFRM, descrita no código-fonte como CVE-2026-43503.
DirtyClone é uma ferramenta de escalonamento local de privilégios, de diagnóstico e prova de conceito, escrita em C. Ela tem como alvo um caminho de exploração relacionado a kernel/XFRM descrito na fonte como CVE-2026-43503 e destina-se apenas a pesquisa de segurança autorizada em ambientes controlados.
Este repositório contém:
A implementação atual realiza as seguintes etapas de alto nível:
Esta ferramenta destina-se apenas a testes de segurança autorizados. Executá-la em sistemas sem permissão explícita pode ser ilegal e pode comprometer a integridade do sistema.
Instale primeiro o pacote de desenvolvimento OpenSSL necessário:
# Debian/Ubuntu
sudo apt-get install libssl-dev
# Fedora
sudo dnf install openssl-devel
# Arch Linux
sudo pacman -S openssl
Em seguida, compile o binário:
gcc -o dirtyclone dirtyclone.c -lcrypto -Wall -O2
Execute o programa com:
./dirtyclone
Argumentos opcionais:
./dirtyclone -q # quiet mode
./dirtyclone -v # verbose mode (default)
./dirtyclone -h # show help
Em tempo de execução, o programa:
A exploração é construída em torno de uma ideia simples: o programa prepara uma carga útil ESP/XFRM especialmente elaborada que faz o kernel descriptografar dados em uma região de memória apoiada pelo cache de páginas e, em seguida, verifica se os bytes no binário SUID alvo foram alterados.
Em termos práticos, o programa realiza as seguintes ações:
/usr/bin/su, e o mapeia na memória;Este é um fluxo de prova de conceito, não uma estrutura genérica de escalonamento de privilégios. Ele destina-se a demonstrar o mecanismo de exploração e a ajudar a verificar se um kernel alvo ainda expõe o comportamento vulnerável.
O exemplo simplificado a seguir mostra o mesmo conceito em alto nível:
#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;
}
O projeto real usa o mesmo princípio, mas empacota a carga útil como um pacote estilo ESP/XFRM e aciona o caminho do kernel através da pilha de rede em vez de uma simples cópia de memória.
Fase de configuração
Preparação do XFRM
Construção da carga útil
Fase de entrega
Verificação e execução
A implementação inclui:
atexit e handlers de sinais,fork/execvp,O código-fonte espera um ambiente Linux com:
ip, iptables e modprobe disponíveis no sistema,/usr/bin/su,O programa destina-se a mostrar um resumo diagnóstico de PoC e então:
Se a exploração não disparar, o programa imprime uma mensagem clara sugerindo que o kernel provavelmente está corrigido.
Use este projeto somente quando:
Nunca execute este código em sistemas de produção ou em sistemas que você não tem permissão para avaliar.
O cabeçalho do código-fonte identifica o autor como MrAashish0x1 (gl1tch0x1). O repositório não inclui um arquivo de licença separado, portanto o código deve ser tratado como material de pesquisa, e não como software de produção.