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
