
Proof-of-concept exploit per CVE-2026-31431, una vulnerabilità di escalation locale dei privilegi nel kernel Linux nel modulo algif_aead, che consente a utenti non privilegiati di ottenere i privilegi di root tramite una scrittura di 4 byte nella cache delle pagine.
Questo repository contiene un Proof of Concept per lo sfruttamento di CVE-2026-31431, una vulnerabilità di elevazione dei privilegi locali ad alta gravità nel kernel Linux che consente a qualsiasi utente locale non privilegiato di ottenere accesso root. Il difetto, soprannominato "Copy Fail", risiede nel modulo algif_aead e può essere concatenato con l'interfaccia socket AF_ALG e la chiamata di sistema splice() per eseguire una scrittura controllata di 4 byte nella cache delle pagine di qualsiasi file leggibile, come il binario setuid /usr/bin/su.
La vulnerabilità colpisce quasi tutti i kernel Linux rilasciati dal 2017, incluse tutte le principali distribuzioni (Ubuntu, Debian, RHEL, SUSE, Amazon Linux e molte altre). È stata divulgata pubblicamente il 29 aprile 2026. È stata applicata una correzione upstream (commit a664bf3d603d), ma molti vendor stanno ancora distribuendo kernel patchati. Fino a quando non sarà disponibile un kernel corretto, si consiglia vivamente di disabilitare il modulo kernel algif_aead come mitigazione temporanea.
⚠ Importante: Questo materiale è fornito esclusivamente a scopo educativo e per attività di ricerca sulla sicurezza autorizzate. Non utilizzarlo contro sistemi che non possiedi o senza autorizzazione esplicita.
Il repository contiene due implementazioni PoC che dimostrano lo sfruttamento da diverse angolazioni.
copy-fail-poc-short.py — minimale, vicino all'originaleUna versione condensata che rimane molto vicina all'exploit Python originariamente pubblicato. Utilizza nomi di variabili a singola lettera e omette commenti o costanti, rendendola estremamente compatta (732 byte). Questa variante:
/usr/bin/su e un socket AF_ALG AEAD grezzo.os.splice per copiare a zero-copy il blocco corrispondente di 4 byte dal file di destinazione./usr/bin/su per ottenere una shell root.copy-fail-poc.py — completamente rifattorizzato, esaustivoUna versione completamente riscritta e ben documentata che segue le migliori pratiche Python. Questa variante:
send_data_over_crypto_socket()) per isolare la logica principale.Questa versione è ideale per chi vuole comprendere a fondo la vulnerabilità o adattare il codice per ulteriori ricerche.
A livello generale, l'exploit:
setuid di destinazione (/usr/bin/su).AF_ALG AEAD e lo configura con i parametri necessari per attivare il difetto logico.splice().algif_aead, il kernel scrive erroneamente 4 byte di dati controllati dall'attaccante nella cache delle pagine del binario di destinazione./usr/bin/su patcha di fatto il binario a runtime, consentendo a un utente non privilegiato di eseguire una versione patchata che restituisce una shell root.L'exploit è estremamente affidabile (tasso di successo del 100%) e non richiede finestre di race né offset specifici per kernel.
a664bf3d603d (git.kernel.org)