
Proof-of-concept exploit per CVE-2026-31431, una vulnerabilità di corruzione della page-cache del kernel Linux che consente l'escalation dei privilegi locali tramite algif_aead. Include exploit.py e indicazioni di mitigazione.
Una proof-of-concept professionale per la vulnerabilità CVE-2026-31431, un difetto critico nella gestione della page-cache di algif_aead / authencesn nel kernel Linux.
La vulnerabilità CVE-2026-31431, nota colloquialmente come "Copy Fail", coinvolge un bug di scratch-write nella page-cache divulgato il 29 aprile 2026. Consente a un utente locale non privilegiato di corrompere la vista della page-cache di file critici di sistema come /etc/passwd o /usr/bin/su senza modificare il file su disco, abilitando l'Escalation dei Privilegi Locali (LPE). [1]
Il componente algif_aead esegue operazioni AEAD (Authenticated Encryption with Associated Data) in-place. Quando i dati di origine vengono forniti tramite splice() da un file regolare, lo scatterlist di destinazione fa riferimento alle pagine della page-cache del file. L'algoritmo authencesn(hmac(sha256), cbc(aes)) esegue una "scratch" write di 4 byte del campo seqno_lo dell'AAD nella destinazione, corrompendo direttamente la copia nella page-cache. [1]
| Distribuzione | Stato |
|---|---|
| Ubuntu 24.04 LTS | Confermata Vulnerabile |
Nota: Qualsiasi kernel che includa il commit
72548b093ee3(risalente al 2017) senza il revert a monte è potenzialmente interessato.
| File | Descrizione |
|---|---|
exploit.py | Un'implementazione compatta della primitiva LPE che prende di mira i binari di sistema. |
Per ottenere una shell di root utilizzando lo script di exploit fornito:
python3 exploit.py
Lo script automatizza la corruzione della page-cache di /usr/bin/su o /etc/passwd per elevare i privilegi. Si consiglia agli utenti di rivedere attentamente il codice prima dell'esecuzione, poiché interagisce con componenti sensibili del sistema.
La primitiva principale sfrutta la seguente sequenza:
sendmsg con AAD di 8 byte e controlli AEAD specifici.splice() del descrittore del file di destinazione nel socket dell'operazione.recv(), che esegue la scratch write prima di restituire un errore.Fino a quando non verrà distribuito un kernel patchato, il modulo algif_aead dovrebbe essere disabilitato:
sudo tee /etc/modprobe.d/disable-algif-aead.conf <<<'install algif_aead /bin/false'
sudo rmmod algif_aead 2>/dev/null
AVVERTENZA: Questo strumento è destinato esclusivamente a scopi educativi e di valutazione della sicurezza autorizzata. L'uso non autorizzato contro sistemi di cui non si possiede la proprietà o per i quali non si dispone di esplicito permesso di test è illegale e non etico. Gli autori non si assumono alcuna responsabilità per un uso improprio.
[1] Xint Blog: Copy Fail - Linux Distributions Disclosure
© 2026 BEN
| Amazon Linux 2023 | Confermata Vulnerabile |
| RHEL 14.3 | Confermata Vulnerabile |
| SUSE 16 | Confermata Vulnerabile |