Copy Fail (CVE-2026-31431): 4 byte oltre i limiti per arrivare a root

CVE-2026-31431 'Copy Fail': nove anni di kernel Linux (2017–2026) vulnerabili a un out-of-bounds write di 4 byte nell'interazione fra AF_ALG, splice() e l'algoritmo authencesn. Un payload Python da 732 byte è sufficiente per compromettere /usr/bin/su e ottenere root. Patch ufficiale già disponibile.

Open SourceCybersecurity Open SourceLinuxKernelSecurityCVEAF_ALGPrivilege Escalation

Una vulnerabilità che ha attraversato nove anni

Il Xint Code Research Team, sulla base di un contributo iniziale di Taeyang Lee, pubblica i dettagli di CVE-2026-31431, soprannominata “Copy Fail”: una out-of-bounds write di 4 byte nel kernel Linux che attraversa dal 2017 al 2026 — nove anni di rilasci stabili e LTS — e consente a un utente non privilegiato di scalare a root con un exploit di 732 byte. Severity dichiarata: critica.

Il vettore: AF_ALG, splice() e authencesn

Il difetto vive all’incrocio fra tre meccanismi del kernel: AF_ALG, l’interfaccia user-space verso le primitive crittografiche; la system call splice(), che muove dati fra file descriptor senza copia in user-space; e l’algoritmo authencesn (Authenticated Encryption with Associated Data + Extended Sequence Number). Durante la decrittazione, authencesn riusa il buffer di destinazione come area temporanea e finisce per scrivere quattro byte oltre i propri limiti. Quei byte non finiscono in memoria volatile qualunque: cadono nella page cache, cioè nelle pagine in cui il kernel mantiene il contenuto dei file aperti.

Da quattro byte a /usr/bin/su

L’effetto pratico è che un attaccante locale può modificare in modo controllato il contenuto in cache di un file privilegiato. Il proof-of-concept pubblicato sul repository theori-io/copy-fail-CVE-2026-31431 — uno script Python da 732 byte — sceglie come target /usr/bin/su: la modifica via page cache trasforma la chiamata successiva di su in una shell privilegiata. Niente race condition, niente brute force, niente requisiti hardware particolari.

Distribuzioni e patch

L’articolo originale di Xint indica come vulnerabili “senza adattamenti” le mainstream Ubuntu, Amazon Linux, RHEL e SUSE. La patch upstream rimuove l’ottimizzazione introdotta nel 2017 e separa le strutture di input e output, ripristinando l’invariante che authencesn rompeva. Le distribuzioni hanno cominciato a pubblicare i kernel package aggiornati nelle ore successive alla disclosure.

Cosa significa in pratica

Copy Fail è il pattern classico della vulnerabilità “con il pedigree”: una micro-ottimizzazione introdotta in buona fede in un sottosistema specialistico, che resta in circolazione per quasi un decennio prima di incrociare un team che la cerca con gli occhi giusti. Per chi gestisce parchi Linux in produzione, l’azione è ordinaria — pacchetti aggiornati, reboot pianificati, audit dei privilegi locali; la lezione è che il rumore di fondo della crittografia in-kernel merita lo stesso scrutinio dei vettori più “rumorosi” (network, filesystem, syscall popolari).

Link: copy.fail · Exploit PoC su GitHub · Blog Xint Code

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi