← Tornar als articles
Seguretat· 2 min de lectura

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

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, 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