
Implementazione in C di un proof-of-concept per CVE-2026-31431, una vulnerabilità di avvelenamento della cache delle pagine AF_ALG del kernel Linux che consente l'escalation dei privilegi locali e il potenziale escape dal container tramite l'inquinamento dei file SUID.
PoC in C per la riproduzione di CVE-2026-31431, utilizzabile quando l'ambiente di destinazione non dispone di Python
Tipo di vulnerabilità: avvelenamento della cache di pagina nel sottosistema AF_ALG del kernel Linux, che consente l'elevazione locale dei privilegi e la possibile fuga dal container contaminando il contenuto dei file SUID.
Versioni del kernel interessate: kernel Linux 5.15 ~ 6.1.x (alcune versioni inferiori o superiori potrebbero essere interessate, a seconda delle opzioni di compilazione relative ad AF_ALG).
Condizioni di sfruttamento:
Il kernel è compilato con CONFIG_CRYPTO_USER_API_AEAD e supporta algoritmi AEAD (come authenc(hmac(sha256),cbc(aes))), oppure i moduli corrispondenti sono caricati.
L'attaccante dispone di un account locale a bassi privilegi e può eseguire codice arbitrario (ad esempio caricando un ELF compilato staticamente).
Il file system di destinazione supporta la chiamata di sistema splice.
Puoi caricare direttamente il file copy_fail sulla macchina di destinazione ed eseguirlo, oppure scegliere di compilare autonomamente il file copy_fail.c
Si consiglia la compilazione statica (per evitare dipendenze dalla versione di glibc): gcc -static -o copy_fail copy_fail.c
./copy_fail
Questo codice è stato riscritto sulla base del PoC Python ufficiale.
Questo codice è destinato esclusivamente alla ricerca sulla sicurezza, all'istruzione e ai test autorizzati legalmente; è severamente vietato utilizzarlo per attacchi illegali. L'utente si assume ogni responsabilità legale.