
Script Python para verificar si un sistema Linux es vulnerable a la falla CVE-2026-31431 (Copy Fail), una elevación de privilegios local en el núcleo Linux.
Script Python para verificar si un sistema Linux es vulnerable a la falla CVE-2026-31431 (Copy Fail), una elevación de privilegios local en el kernel de Linux.
Desde 2017 (commit 72548b093ee3), el módulo criptográfico algif_aead del kernel gestiona las operaciones en el lugar de forma incorrecta. Mediante splice(), un usuario no privilegiado puede corromper el page cache de un binario setuid y obtener los derechos root sin tocar el disco.
| # | Verificación |
|---|---|
| 1 | Versión del kernel (rango vulnerable) |
| 2 | Módulo algif_aead cargado o cargable |
| 3 | Socket AF_ALG SOCK_SEQPACKET accesible sin privilegios |
| 4 | os.splice() disponible (exploit Python directo) |
| 5 | Binarios setuid legibles por todos (sudo, passwd...) |
| 6 | Protecciones activas (SELinux, AppArmor, blacklist modprobe) |
python3 check_cve_2026_31431.py
Sin dependencias externas. Funciona sin root.
Este script solo analiza el sistema. No explota la falla, no carga ningún módulo y no escribe nada en el disco.
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/algif_aead-block.conf
Esta mitigación no funciona en las distribuciones RHEL (módulo integrado en el kernel).