
# Exploit Python per CVE-2026-31431, un'escalation locale dei privilegi nel kernel Linux tramite AF_ALG e splice() per scrivere nella cache di pagina, ottenendo root su arm64 e x86.
| Elemento | Contenuto |
|---|---|
| ID CVE | CVE-2026-31431 |
| Nome vulnerabilità | Copy Fail |
| Tipo di vulnerabilità | Escalation dei privilegi locale (LPE) del kernel Linux |
| Punteggio CVSS 3.1 | 7.8 (ALTO) |
| CWE | CWE-669: Trasferimento errato di risorse tra sfere |
| Ambito di impatto | Tutti i kernel Linux compilati tra il 2017 e aprile 2026 |
| CISA KEV | Incluso, scadenza correzione 2026-05-15 |
| Data di divulgazione | 2026-04-29 |
Nel 2017, nel modulo crittografico algif_aead del kernel è stata introdotta un'ottimizzazione di crittografia in-place. Questa ottimizzazione ha causato l'inserimento errato delle pagine della page-cache in un scatterlist di destinazione scrivibile. Un attaccante, combinando il socket AF_ALG con la syscall splice(), può scrivere dati nella page cache di file arbitrari (inclusi file di sola lettura di proprietà di root).
Catena di attacco: socket AF_ALG → splice() → primitiva di scrittura nella page-cache → manomissione della page cache di un binario setuid → esecuzione del file per ottenere privilegi di root
Caratteristiche dell'attacco:
| Distribuzione | Versioni kernel vulnerabili |
|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 |
| SUSE 16 | 6.12.0-160000.9-default |
Anche Debian, Arch, Fedora, Rocky, Alma, Oracle e altre distribuzioni con lo stesso intervallo di kernel sono vulnerabili.
Tutti i kernel con versione inferiore alle seguenti versioni corrette sono vulnerabili:
uname -r
Confrontare l'output con le versioni corrette nella tabella precedente: se la versione è inferiore, il sistema è vulnerabile.
# Verificare se ci sono connessioni AF_ALG attive
lsof | grep AF_ALG
# Verificare lo stato dei socket AF_ALG
ss -xa | grep alg
lsmod | grep algif_aead
Se c'è output, il modulo è caricato e il sistema è a rischio di sfruttamento.
# Clonare il repository del PoC
git clone https://github.com/cx330zer0/CVE-2026-31431-Copy-Fail-add-arm64.git
cd CVE-2026-31431-Copy-Fail-add-arm64
# Eseguire il PoC (richiede un utente non privilegiato)
python3 copy-fail-dual-arch.py
Se il PoC ottiene con successo una shell di root, il sistema è vulnerabile.
| Ramo stabile | Versione minima corretta |
|---|
| 5.10.x | ≥ 5.10.254 |
| 5.15.x | ≥ 5.15.204 |
| 6.1.x | ≥ 6.1.170 |
| 6.6.x | ≥ 6.6.137 |
| 6.12.x | ≥ 6.12.85 |
| 6.18.x | ≥ 6.18.22 |
| 6.19.x | ≥ 6.19.12 |
| 7.0.x | ≥ 7.0-rc7 |