
Exploit di escalation locale dei privilegi su Linux non privilegiato che sfrutta il percorso veloce no-COW di xfrm ESP-in-UDP MSG_SPLICE_PAGES per sovrascrivere /etc/passwd e ottenere i privilegi di root.
LPE Linux non privilegiato tramite il fast path no-COW di xfrm ESP-in-UDP MSG_SPLICE_PAGES. Scrittura nella page cache di qualsiasi file leggibile. Sovrascrive una riga nologin in /etc/passwd con sick::0:0:...:/:/bin/bash ed esegue su su di essa. Stessa classe di Copy Fail (CVE-2026-31431), sottosistema diverso.
sudo apt install -y libssl-dev gcc
gcc -O2 -Wall copyfail2.c -o copyfail2 -lcrypto
gcc -O2 -Wall aa-rootns.c -o aa-rootns
./run.sh # install + drop into root shell
./run.sh --clean # revert /etc/passwd via the same primitive
Aggiunge l'utente uid-0 senza password sick a /etc/passwd, poi esegue exec su - sick. PAM nullok accetta la password vuota silenziosamente — nessun input necessario. La riga sick rimane in /etc/passwd — rieseguire riporta direttamente alla root. Lo stato per --clean è conservato in /var/tmp/.cf2.state.
Nessun sudo. esp4 / xfrm_user / xfrm_algo si caricano automaticamente tramite il percorso netlink userns.
| distro | kernel | risultato |
|---|---|---|
| Ubuntu 22.04 LTS | 5.15.0-176-generic | non vulnerabile* |
| Ubuntu 24.04 LTS | 6.8.0-110-generic | root |
| Debian 13 | 6.12.74 | root |
| Arch | 6.19.11-arch1-1 | root |
| Fedora 43 | 6.19.14-200.fc43 | root |
| Ubuntu 26.04 LTS | 7.0.0-15-generic | root |
Lo stesso bug esiste in esp6_input e non è coperto dalla fix v4 f4c50a4034. PoC in ipv6/: ipv6/run.sh e ipv6/copyfail2v6.c. Usa il loopback ::1 e ip -6 xfrm. Il pacchetto ESP è paddato a >= 40 byte per superare il controllo di dimensione in xfrm6_input.c:124.
Hyunwoo Kim (imv4bel) e Kuan-Ting Chen hanno segnalato, testato e scritto la fix upstream.
Steffen Klassert: maintainer di IPsec, ha pubblicato la fix su netdev/net.git.
Brad Spengler (@spendergrsec / grsecurity): l'ha definita della classe copyfail prima che chiunque altro leggesse il commit.
Theori / Xint: Copy Fail originale (CVE-2026-31431).