# Copy Fail (CVE-2026-31431): un error del 2017 a algif_aead permet escalar a root a Linux

- **Publicat el:** 2026-03-23
- **Categoria:** Seguretat
- **Pàgina original:** https://linuxgratis.com/ca/articles/cve-2026-31431-copy-fail-algif-aead-privesc-root-kernel-linux

Una optimització del mòdul crypto AF_ALG del kernel deixa que un usuari local escrigui 4 bytes a qualsevol fitxer en cau i es converteixi en root. Afecta gairebé totes les distribucions.

---

Un usuari sense privilegis que pugui obrir un socket no hauria de poder reescriure `/usr/bin/su` i acabar sent root. Doncs això és just el que permet CVE-2026-31431, batejat **Copy Fail**, un error d'escalada local al mòdul `algif_aead` del kernel Linux que es va reportar a l'equip de seguretat del kernel el 23 de març de 2026.

## Què és i d'on ve

`algif_aead` forma part de l'API criptogràfica AF_ALG, la interfície que exposa els algorismes del kernel a programes d'espai d'usuari mitjançant sockets. El problema neix d'una optimització que es va introduir el 2017. Per evitar copiar dades, el codi permetia col·locar pàgines de la *page cache* directament en una *scatterlist* de destí escrivible. Aquella idea, pensada per guanyar rendiment, va obrir la porta que un procés escrigués sobre pàgines que en realitat sostenen fitxers del sistema.

L'identificador formal és CWE-669 (transferència incorrecta de recursos entre esferes) i la puntuació CVSS és **7.8**. No és execució remota, però la combinació de "qualsevol usuari local" i "escalada directa a root" el fa seriós.

## Com s'explota

Encadenant operacions del socket AF_ALG amb `splice()`, un atacant aconsegueix una escriptura controlada de 4 bytes sobre qualsevol fitxer llegible sostingut per la cau de pàgines. Quatre bytes semblen poca cosa, però ben col·locats basten per corrompre un binari setuid com `su` i obrir el camí a una shell de root. La tècnica també serveix per sortir de contenidors: als nodes de Kubernetes i runners de CI/CD que comparteixen kernel amb l'amfitrió, el mateix error permet escapar de l'aïllament.

El pedaç a mainline (commit `a664bf3d603d`, de l'1 d'abril de 2026) reverteix directament aquella optimització del 2017. Després de la publicació, la vulnerabilitat va entrar al catàleg KEV de CISA amb prova de concepte pública.

## A qui afecta

Pràcticament qualsevol distribució amb un kernel compilat entre el 2017 i l'arribada del pedaç. Entre les versions verificades com a vulnerables hi ha Ubuntu 24.04 LTS (kernel 6.17 en imatges AWS), Amazon Linux 2023, RHEL 10.1 i SUSE 16. Ubuntu 26.04 i posteriors no estan afectades. Si administres la [línia principal del kernel Linux](/ca/linux-kernel), val la pena revisar la versió exacta que executes.

## Què fer

El primer és actualitzar el kernel tan bon punt la teva distribució publiqui la correcció. Mentre arriba, hi ha dues mitigacions raonables:

- Desactivar el mòdul `algif_aead`. Crea un fitxer a `/etc/modprobe.d/disable-algif.conf` amb la línia `install algif_aead /bin/true` per impedir que es carregui. Si alguna aplicació legítima fa servir AF_ALG, prova-ho abans en un entorn de staging.
- En contenidors i clústers de Kubernetes, bloquejar la creació de sockets `AF_ALG` mitjançant polítiques seccomp. És la barrera més eficaç per frenar l'escapament del contenidor.

La majoria de càrregues de treball no necessiten AF_ALG per a res, així que desactivar-lo rarament trenca res. Tot i així, comprova les teves dependències abans d'aplicar-ho en producció.

## Font

- CERT-EU / Red Hat — High Vulnerability in the Linux Kernel (Copy Fail): <https://cert.europa.eu/publications/security-advisories/2026-005/>
- NVD — CVE-2026-31431: <https://nvd.nist.gov/vuln/detail/CVE-2026-31431>
