
Repositorio de investigación defensiva para CVE-2026-31431, una escalada de privilegios local del kernel de Linux mediante corrupción de la caché de páginas a través de AF_ALG, splice() y authencesn. Incluye análisis técnico, estrategias de detección y medidas de mitigación.
Copy Fail (CVE-2026-31431) es una vulnerabilidad de tipo Escalada de Privilegios Local (LPE) que afecta al kernel de Linux mediante una corrupción controlada del page cache a través de los mecanismos AF_ALG, splice() y authencesn.
Este repositorio tiene como objetivo:
⚠️ Este proyecto es estrictamente educativo, defensivo y está destinado a la investigación de seguridad.
Todas las demostraciones presentadas en este repositorio se han realizado en entornos de laboratorio aislados y controlados.
No está permitido ningún uso en sistemas de terceros sin autorización explícita.
| Característica | Detalle |
|---|---|
| Sin condición de carrera | Explotación determinista |
| Sin modificación en disco |
Comparable con:
User Space
↓
AF_ALG Socket
↓
splice()
↓
Page Cache Reference
↓
authencesn In-Place Write
↓
Controlled 4-Byte Overwrite
↓
execve()
↓
Privilege Escalation
2011 → authencesn añadido al kernel
2015 → AF_ALG recibe soporte AEAD + splice()
2017 → Optimización in-place en algif_aead.c
2026 → Descubrimiento y parche oficial
AF_ALGInterfaz socket que expone las primitivas criptográficas del kernel de Linux al espacio de usuario.
splice()Mecanismo que permite la transferencia de páginas sin copia entre descriptores de archivo.
authencesnTemplate AEAD IPsec ESN que utiliza el buffer de destino como espacio de trabajo temporal.
La optimización introducida en algif_aead.c permitió el encadenamiento directo de las páginas del page cache en la scatterlist de destino mediante sg_chain().
Input SGL: AAD || Ciphertext || Tag (page cache)
↑
Output SGL: AAD || Ciphertext ------+
authencesn escribe entonces directamente en las páginas del page cache del archivo objetivo.
| Primitiva | Control |
|---|---|
| Archivo objetivo | Cualquier archivo legible |
⚠️ Reservado para entornos de prueba aislados.
uname -r
lsmod | grep algif_aead
python3 --version
git clone https://github.com/theori-io/copy-fail-CVE-2026-31431.git
cd copy-fail-CVE-2026-31431
python3 copy_fail_exp.py
auditctl -a always,exit -F arch=b64 -S socket -F a0=38 -k af_alg_socket
auditctl -a always,exit -F arch=b64 -S splice -k splice_monitor
ps aux | awk '$1 == "root"'
ss -tlnp
algif_aeadecho "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead
{
"defaultAction": "SCMP_ACT_ALLOW",
"syscalls": [
{
"names": ["socket"],
"action": "SCMP_ACT_ERRNO",
"args": [
{ "index": 0, "value": 38, "op": "SCMP_CMP_EQ" }
]
}
]
}
El parche a664bf3d603d elimina la operación in-place vulnerable en algif_aead.c.
sudo apt update && sudo apt upgrade
sudo reboot
| Fecha | Evento |
|---|---|
| 2017 | Introducción de la vulnerabilidad |
| 2026-03-23 | Reporte al equipo de seguridad del kernel |
| 2026-04-01 | Parche integrado |
| 2026-04-29 | Divulgación pública |
linux kernel security, CVE-2026-31431, copy fail, page cache, AF_ALG, authencesn, linux LPE, kernel exploit, linux hardening, security research, dirty pipe, kernel mitigation
Este repositorio está destinado exclusivamente:
Cualquier uso no autorizado es ilegal.
🛡️ Concienciación • Mitigación • Investigación Defensiva
🔁 Comparte el proyecto con la comunidad de ciberseguridad
⭐ Apoya la investigación de seguridad en Linux
| Elemento | Valor |
|---|
| Tipo | Escalada de Privilegios Local |
| Impacto | Root local |
| Componente | Kernel de Linux |
| Subsistema | AF_ALG / authencesn |
| Primitiva | Escritura controlada en el page cache |
| Condición | Usuario no privilegiado |
| Sigilo | Archivo en disco intacto |
| Gravedad | Crítica |
| Detección difícil |
| Exploit minimalista | Solo Python estándar |
| Impacto en contenedores | Kubernetes / VPS / hosting compartido |
| Ventana amplia | Kernels vulnerables desde 2017 |
| Offset | Controlado mediante splice |
| Valor escrito | Campo seqno_lo |
| Persistencia | Solo en memoria |
| Detección en disco | Imposible |
| Distribución | Kernel | Estado |
|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws | ✅ Vulnerable |
| Amazon Linux 2023 | 6.18.8-9.213 | ✅ Vulnerable |
| RHEL 10.1 | 6.12.0 | ✅ Vulnerable |
| SUSE 16 | 6.12.0 | ✅ Vulnerable |
| Recurso | Descripción |
|---|
| Dirty Pipe | CVE-2022-0847 |
| Documentación del Kernel de Linux | Documentación oficial |
| Openwall Security | Lista de correo de seguridad |
| LWN.net | Análisis del kernel Linux |
| Documentación de AF_ALG | API criptográfica |
| XFRM / IPsec | Subsistema afectado |