
CVE-2026-31431 - Guida alla Rimedizione e Misure di Protezione
Questo repository documenta la vulnerabilità CVE-2026-31431, soprannominata Copy Fail, e propone una procedura di remissione difensiva per i sistemi Linux potenzialmente esposti.
⚠️ Questo repository è strettamente orientato alla difesa, all'audit autorizzato, all'hardening e alla remissione.
Non fornisce procedure di sfruttamento e non deve essere utilizzato per compromettere sistemi di terze parti.
CVE-2026-31431 / Copy Fail è una vulnerabilità di elevazione locale dei privilegi nel kernel Linux.
Riguarda il sottosistema crittografico del kernel, più precisamente l'interfaccia utente AF_ALG e il modulo algif_aead. La falla è legata a un'ottimizzazione introdotta nel 2017 nel percorso AEAD del kernel Linux. In determinate condizioni, un utente locale non privilegiato può provocare una scrittura controllata nella di un file leggibile, in particolare un binario setuid, il che può portare a un'elevazione dei privilegi verso .
rootLa vulnerabilità è considerata High con un punteggio CVSS v3.1 di 7.8.
| Elemento | Dettaglio |
|---|---|
| CVE | CVE-2026-31431 |
| Nome pubblico | Copy Fail |
| Tipo | Local Privilege Escalation, LPE |
| Componente | Linux kernel crypto subsystem |
| Modulo interessato | algif_aead |
| Interfaccia | AF_ALG |
| Meccanismo coinvolto | AEAD, authencesn, splice(), page cache |
| Punteggio CVSS v3.1 | 7.8 High |
| Privilegi richiesti | Account locale non privilegiato |
| Interazione utente | Nessuna |
| Impatto | Riservatezza, integrità e disponibilità elevate |
Le fonti pubbliche indicano che le distribuzioni Linux che includono un kernel derivato da un ramo vulnerabile dall'ottimizzazione del 2017 possono essere esposte.
Esempi di piattaforme menzionate nelle pubblicazioni pubbliche:
| Distribuzione | Esempio di versione kernel testata pubblicamente |
|---|---|
| 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 |
| Debian | In base alla versione del kernel e allo stato di sicurezza |
| AlmaLinux / Rocky Linux / Oracle Linux | In base alla versione del kernel e ai backport del fornitore |
Lo stato esatto dipende dalla versione del kernel, dal fornitore, dai backport di sicurezza e dalle patch già applicate.
Questa vulnerabilità è particolarmente pericolosa in ambienti in cui utenti o workload non affidabili hanno accesso a una shell locale o a un ambiente di esecuzione condiviso.
Ambienti da prioritizzare:
Rischio principale:
root;uname -a
uname -r
lsmod | grep algif_aead || true
sudo lsof -nP | grep AF_ALG || true
dpkg -l | grep -E '^ii\\s+linux-image|^ii\\s+linux-modules'
rpm -qa | grep -E '^kernel|^kernel-core'
rpm -qa | grep -E '^kernel'
Opzione prioritaria: applicare la patch kernel del fornitore La remissione corretta consiste nell'installare un kernel corretto fornito dalla distribuzione, quindi riavviare su tale kernel.
sudo apt update
sudo apt full-upgrade -y
sudo reboot
sudo dnf update -y kernel kernel-core kernel-modules
sudo reboot
sudo zypper refresh
sudo zypper patch
sudo reboot
# Dopo il riavvio:
uname -r
Se nessun kernel corretto è ancora disponibile o se un riavvio immediato è impossibile, applicare una mitigazione temporanea.
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo modprobe -r algif_aead 2>/dev/null || true
sudo rmmod algif_aead 2>/dev/null || true
sudo update-initramfs -u
sudo dracut -f
sudo mkinitrd
sudo reboot
sudo modprobe algif_aead
echo $?
Su alcuni kernel, il modulo può essere compilato direttamente nel kernel e non essere caricabile/scaricabile come modulo.
grep CONFIG_CRYPTO_USER_API_AEAD /boot/config-$(uname -r)
CONFIG_CRYPTO_USER_API_AEAD=m
Il componente è un modulo. La mitigazione tramite /etc/modprobe.d/ è applicabile.
CONFIG_CRYPTO_USER_API_AEAD=y
Il componente è integrato nel kernel. La mitigazione tramite modprobe.d non è sufficiente.
In questo caso, utilizzare preferibilmente:
Alcune fonti menzionano la seguente opzione kernel come possibile bypass:
initcall_blacklist=algif_aead_init
Da testare obbligatoriamente fuori produzione prima della generalizzazione. Questa opzione può variare in base al kernel, alla distribuzione e alla configurazione di avvio.
Per Docker, Podman, Kubernetes e CI/CD, è necessario ridurre la possibilità per workload non affidabili di aprire socket AF_ALG.
sudo lsof -nP | grep AF_ALG || true
lsmod | grep algif_aead || true
find / -perm -4000 -type f 2>/dev/null
sudo ausearch -f /usr/bin/su 2>/dev/null || true
sudo auditctl -w /usr/bin/su -p x -k su_exec_monitoring
sudo ausearch -k su_exec_monitoring
last -a
lastlog
getent passwd
sudo find /etc/cron* -type f -ls 2>/dev/null
sudo find /root /home -name authorized_keys -type f -ls 2>/dev/null
sudo journalctl --since "48 hours ago"
#!/usr/bin/env bash
set -euo pipefail
echo "[+] CVE-2026-31431 - mitigazione temporanea algif_aead"
if [[ $EUID -ne 0 ]]; then
echo "[-] Questo script deve essere eseguito come root."
exit 1
fi
echo "[+] Versione kernel attiva : $(uname -r)"
echo "[+] Disattivazione persistente del caricamento algif_aead"
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
echo "[+] Tentativo di scaricamento del modulo"
modprobe -r algif_aead 2>/dev/null || true
rmmod algif_aead 2>/dev/null || true
if command -v update-initramfs >/dev/null 2>&1; then
echo "[+] Aggiornamento initramfs Debian/Ubuntu"
update-initramfs -u
elif command -v dracut >/dev/null 2>&1; then
echo "[+] Aggiornamento initramfs tramite dracut"
dracut -f
elif command -v mkinitrd >/dev/null 2>&1; then
echo "[+] Aggiornamento initramfs tramite mkinitrd"
mkinitrd
else
echo "[!] Nessuno strumento initramfs noto rilevato. Verificare manualmente."
fi
echo "[+] Verifica"
lsmod | grep algif_aead && echo "[!] Modulo ancora caricato" || echo "[OK] Modulo non caricato"
echo "[+] Riavvio raccomandato."
Non sostituisce:
l'installazione di un kernel corretto;
il riavvio sul kernel corretto;
la validazione dello stato del fornitore;
l'analisi post-incidente se si sospetta una compromissione.
Può inoltre influire su alcuni software esplicitamente configurati per utilizzare l'interfaccia crittografica AF_ALG.
Theori / Xint Code — Copy Fail Technical Write-up https://xint.io/blog/copy-fail-linux-distributions Repository GitHub Theori PoC https://github.com/theori-io/copy-fail-CVE-2026-31431 NVD — CVE-2026-31431 https://nvd.nist.gov/vuln/detail/CVE-2026-31431 CERT-EU — Security Advisory 2026-005 https://cert.europa.eu/publications/security-advisories/2026-005/ Ubuntu Security — CVE-2026-31431 https://ubuntu.com/security/CVE-2026-31431 Debian Security Tracker — CVE-2026-31431 https://security-tracker.debian.org/tracker/CVE-2026-31431 SUSE CVE Tracker — CVE-2026-31431 https://www.suse.com/security/cve/CVE-2026-31431.html Tenable FAQ — Copy Fail https://www.tenable.com/blog/copy-fail-cve-2026-31431-frequently-asked-questions-about-linux-kernel-privilege-escalation
Questo repository è fornito esclusivamente a scopo:
Qualsiasi uso offensivo non autorizzato è illegale e contrario all'obiettivo di questo repository.