
Comprobador de solo lectura para CVE-2026-31431 (root local de algif_aead). Informa del estado del kernel/módulo y sugiere mitigaciones.
Comprobador de solo lectura para la vulnerabilidad local-root algif_aead (CVE-2026-31431).
Examina la configuración del kernel, el estado de los módulos, la accesibilidad de los sockets AF_ALG y
cualquier mitigación que hayas aplicado, y luego imprime un veredicto. No ejecuta
código de exploit.
Complemento de dirty-frag-check (CVE-2026-43284 / CVE-2026-43500).

Aviso: esto es una heurística. Un veredicto verde no es una garantía. Contrasta con el aviso de tu distribución antes de declarar que un host es seguro. MIT, sin garantía.
curl -fsSL https://github.com/haydenjames/CVE-2026-31431-check/releases/latest/download/cve-2026-31431.sh | bash
Léelo primero si no te fías de canalizar a bash:
curl -fsSLO https://github.com/haydenjames/CVE-2026-31431-check/releases/latest/download/cve-2026-31431.sh
less cve-2026-31431.sh
chmod +x cve-2026-31431.sh && ./cve-2026-31431.sh
Fija una etiqueta de versión para el control de cambios: https://raw.githubusercontent.com/haydenjames/CVE-2026-31431-check/v1.0.3/cve-2026-31431.sh.
-q para una salida de una línea por host en flotas. -h para ayuda. Código de salida 0 correcto, 1 vulnerable, 2 desconocido.
-q imprime una línea por host, así que puedes canalizarlo a través del ejecutor
remoto que ya uses:
# parallel-ssh
parallel-ssh -h hosts.txt -i 'bash -s -- -q' < cve-2026-31431.sh
# ansible
ansible all -m script -a "cve-2026-31431.sh -q"
Los códigos de salida (0 correcto, 1 vulnerable, 2 desconocido) también funcionan si tus herramientas agregan por estado.
bash 4+, además de las habituales awk/grep/sed/lsmod/modprobe. Si python3
está disponible, también probará la accesibilidad de los sockets AF_ALG; si no, esa
comprobación se omite. La comprobación en sí no necesita root. Aplicar la mitigación sí.
algif_aead. Integrado en el kernel, módulo cargable, cargado o ausente. Lee
/boot/config-* o /proc/config.gz, y recurre a lsmod.
1b. Estado de authencesn. Según el aviso de upstream, este es el módulo
que realmente contiene el fallo — algif_aead es una de las vías de acceso,
e IPsec es otra. Se detecta mediante lsmod/modinfo y la configuración.modprobe -n -v. También marca el truco roto de DefaultRestrictAddressFamilies
de systemd [Manager] que está circulando: esa directiva solo funciona en units,
no en system.conf.d. Informa del estado de SELinux y AppArmor.algif_aead está integrado. Veredicto de mejor esfuerzo; se apoya en los códigos de salida de dnf check-update, que pueden ser distintos de cero por motivos no relacionados (red, metadatos obsoletos). No asumas que estás atascado esperando sin consultar el rastreador de tu distribución.Según el aviso de upstream,
el fallo se encuentra realmente en el módulo criptográfico authencesn — algif_aead
es solo una de las vías de acceso. Añade ambos a la lista negra para estar seguro:
sudo tee /etc/modprobe.d/disable-cve-2026-31431.conf <<'EOF'
install algif_aead /bin/false
install authencesn /bin/false
EOF
sudo rmmod authencesn algif_aead 2>/dev/null || true
Si rmmod dice "module is in use", algo en el equipo usa activamente
AF_ALG o IPsec (algunas VPN, cifrado de disco, herramientas criptográficas de espacio
de usuario). No fuerces su descarga. Parchea y reinicia.
Si el código vulnerable está compilado en tu kernel, la lista negra no servirá. Solo una actualización del kernel lo corrige.
AlmaLinux 8, AlmaLinux 9.7, CentOS 7 (TuxCare ELS), Ubuntu 22.04, Ubuntu 24.04.
Informes de errores que dieron forma a v1.0.1:
kmod en Ubuntu no se estaba detectando, lo que causaba veredictos VULNERABLE falsos en hosts Ubuntu parcheados.MIT — consulta LICENSE.