
Proof-of-concept local privilege escalation tool exploiting a kernel XFRM/ESP vulnerability (CVE-2026-43503) via crafted AES-CBC encrypted payloads delivered through the networking stack to patch SUID binary page cache.
DirtyClone is a diagnostic, proof-of-concept local privilege escalation tool written in C. It targets a kernel/XFRM-related exploit path described in the source as CVE-2026-43503 and is intended only for authorized security research in controlled environments.
This repository contains:
The current implementation performs the following high-level steps:
This tool is intended for authorized security testing only. Running it on systems without explicit permission can be illegal and may impact system integrity.
Install the required OpenSSL development package first:
# Debian/Ubuntu
sudo apt-get install libssl-dev
# Fedora
sudo dnf install openssl-devel
# Arch Linux
sudo pacman -S openssl
Then compile the binary:
gcc -o dirtyclone dirtyclone.c -lcrypto -Wall -O2
Run the program with:
./dirtyclone
Optional arguments:
./dirtyclone -q # quiet mode
./dirtyclone -v # verbose mode (default)
./dirtyclone -h # show help
At runtime the program:
The exploit is built around a simple idea: the program prepares a crafted ESP/XFRM payload that causes the kernel to decrypt data into a page-cache-backed region of memory, then checks whether the bytes in the target SUID binary have changed.
In practical terms, the program performs the following actions:
/usr/bin/su, and maps it into memory;This is a proof-of-concept flow, not a general-purpose privilege escalation framework. It is intended to demonstrate the exploit mechanism and to help verify whether a target kernel still exposes the vulnerable behavior.
The following simplified example shows the same concept at a high level:
#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;
}
The real project uses the same principle, but it packages the payload as an ESP/XFRM-style packet and drives the kernel path through the networking stack instead of a simple memory copy.
Setup phase
XFRM preparation
Payload construction
Delivery phase
Verification and execution
The implementation includes:
atexit and signal handlers,fork/execvp-based secure command execution,The source expects a Linux environment with:
ip, iptables, and modprobe available on the system,/usr/bin/su,The program is intended to show a diagnostic PoC summary and then either:
If the exploit does not trigger, the program prints a clear message suggesting that the kernel is likely patched.
Use this project only when:
Never run this code on production systems or systems you do not have permission to assess.
The source header identifies the author as MrAashish0x1 (gl1tch0x1). The repository does not include a separate license file, so the code should be treated as research material rather than production software.