Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
copyfail-guard — Detectar y mitigar CVE-2026-31431 (Copy Fail) en sistemas Linux. | Kitploit
Herramientas/GitHubGitHub/ctzisme/copyfail-guard
Herramientas DefensivasEscáneres de VulnerabilidadesAuditoría de ConfiguraciónRespuesta a Incidentes
GitHubctzisme/copyfail-guard

copyfail-guard

Detectar y mitigar CVE-2026-31431 (Copy Fail) en sistemas Linux.

Ver Repositorio
25hace 4 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Sitio web
Compartir

copyfail-guard

PyPI Python License pylint

Una CLI de Python sin dependencias que comprueba si un host Linux parece expuesto a CVE-2026-31431 ("Copy Fail") sin ejecutar un exploit. También puede aplicar una mitigación temporal conservadora cuando el componente afectado se puede cargar como módulo del kernel. Compatible con Debian/Ubuntu, RHEL/Rocky/AlmaLinux, Fedora y SUSE.

root@kitploit:~
pip install copyfail-guard
copyfail-guard

Antecedentes

CVE-2026-31431 es un error lógico en la interfaz del kernel algif_aead (socket AF_ALG AEAD) que permite a un usuario local sin privilegios realizar una escritura controlada de 4 bytes en la caché de páginas de cualquier archivo legible, lo que conduce a una escalada de privilegios a root. CVSS 7.8, presente desde el kernel 4.14, corregido en las versiones estables a partir de abril de 2026. Existe un exploit público y la vulnerabilidad está listada en CISA KEV.

¿Por qué no simplemente ejecutar un exploit?

Algunas comprobaciones de vulnerabilidades se reducen a "ejecutar el exploit y ver si funciona". Eso no es algo recomendable en hosts de producción. copyfail-guard adopta un enfoque sin exploit. No intenta desencadenar el error, modificar binarios setuid ni demostrar la explotabilidad. En su lugar, inspecciona el estado del host (versión del kernel, estado de carga del módulo, configuración de modprobe) e informa si la máquina parece expuesta.

Qué hace esta herramienta

SubcomandoAcción
detectCombina cinco señales (versión del kernel, /proc/modules, modules.builtin, modules.dep, configuración de modprobe) en uno de seis veredictos
fixEscribe atómicamente una regla de modprobe install algif_aead /bin/false e intenta descargar algif_aead
resetElimina la regla de modprobe instalada por fix (ejecutar después de actualizar a un kernel parcheado)

fix es intencionalmente mínimo — no llama a tu gestor de paquetes. La remediación permanente requiere actualizar el kernel mediante el mecanismo de actualización normal de tu distribución.

Instalación

root@kitploit:~
pip install copyfail-guard

O ejecutar directamente desde un checkout sin instalar:

root@kitploit:~
PYTHONPATH=src python3 -m copyfail_guard detect

Uso

root@kitploit:~
copyfail-guard [--json] [--dry-run] [--quiet] [detect | fix | reset]

detect (predeterminado)

root@kitploit:~
$ copyfail-guard
[copyfail-guard] CVE-2026-31431 (Copy Fail) — VULNERABLE
  Distribución: Ubuntu 24.04.1 LTS  (familia debian)
  Kernel:       6.8.0-50-generic  (rama 6.12, corregido en 6.12.85)
  Módulo:       algif_aead — cargado como .ko
  Mitigación:   ninguna

Acciones recomendadas:
  1. Aplicar la mitigación ahora:
       sudo copyfail-guard fix
  2. Actualizar el kernel para una corrección permanente:
       Actualiza el kernel de este sistema a 6.12.85 o posterior (lo que
       distribuya tu distribución una vez que haya integrado la corrección de CVE-2026-31431), y reinicia.

fix

Siempre previsualiza con --dry-run antes de aplicar:

root@kitploit:~
$ sudo copyfail-guard --dry-run fix
[copyfail-guard] fix (dry-run) — OK
  [ ok ] Comprobaciones previas (Linux, host, root)
  [skip] Escribiría la lista negra de modprobe  [/etc/modprobe.d/cve-2026-31431-copyfail-guard.conf]
  [skip] Intentaría descargar algif_aead (no cargado actualmente)  [algif_aead]
  [skip] Añadiría registro de auditoría  [/var/log/copyfail-guard.log]

$ sudo copyfail-guard fix
[copyfail-guard] fix — OK
  [ ok ] Comprobaciones previas (Linux, host, root)
  [ ok ] Lista negra de modprobe escrita  [/etc/modprobe.d/cve-2026-31431-copyfail-guard.conf]
  [ ok ] algif_aead descargado  [algif_aead]
  [ ok ] Registro de auditoría añadido  [/var/log/copyfail-guard.log]

Siguiente paso para una corrección permanente:
  Actualiza el kernel a una versión parcheada de CVE-2026-31431 usando el
  mecanismo de actualización normal de tu distribución y reinicia.

Si el módulo está actualmente en uso, el paso de descarga puede fallar. En ese caso, la regla persistente de modprobe aún puede instalarse correctamente, y copyfail-guard informará del fallo de descarga como un registro de acción de tipo advertencia en lugar de fingir que el módulo fue eliminado.

Salida JSON

--json emite un documento estructurado en stdout, adecuado para pipelines de jq, Ansible o SOAR:

root@kitploit:~
$ copyfail-guard --json | jq .verdict
"vulnerable"

$ copyfail-guard --json | jq '{verdict, kernel: .kernel.patched_threshold}'
{
  "verdict": "vulnerable",
  "kernel": "6.12.85"
}

Códigos de salida

CódigoSignificado
0Seguro — el veredicto es patched, mitigated o not_applicable; o el paso de corrección persistente se completó correctamente
1Vulnerable — el veredicto es vulnerable o unmitigable_builtin
2Error — no se pudo determinar el estado, se rechazó una condición previa o falló el paso de corrección persistente

Veredictos

VeredictoDescripción
patchedEl kernel en ejecución está en o más allá de la versión corregida
mitigatedEl kernel es vulnerable pero algif_aead está bloqueado por la configuración de modprobe
not_applicableEl kernel es vulnerable pero algif_aead no está presente en este sistema
vulnerableEl kernel es vulnerable, el módulo es cargable, no hay mitigación implementada
unmitigable_builtinalgif_aead está compilado en la imagen del kernel — la mitigación de modprobe no tiene efecto; se requiere actualización del kernel
unknownNo se pudo analizar la versión del kernel o está fuera del rango evaluado

Eliminación de la mitigación

Después de actualizar a un kernel parcheado, usa el subcomando reset para eliminar la regla de modprobe instalada por fix:

root@kitploit:~
$ sudo copyfail-guard --dry-run reset
[copyfail-guard] reset (dry-run) — OK
  [skip] Eliminaría /etc/modprobe.d/cve-2026-31431-copyfail-guard.conf

$ sudo copyfail-guard reset
[copyfail-guard] reset — OK
  [ ok ] Eliminado /etc/modprobe.d/cve-2026-31431-copyfail-guard.conf

Reinicia para permitir que algif_aead se cargue nuevamente si es necesario.

reset es idempotente — si el archivo ya está ausente, sale con 0 y un mensaje de "nada que hacer". Luego reinicia.

Notas

Contenedores. fix se niega a ejecutarse dentro de un contenedor porque /proc/modules refleja el kernel del host pero el contenedor no tiene autoridad para cargar o descargar módulos. Ejecuta copyfail-guard directamente en el host.

algif_aead integrado. Algunos kernels compilan algif_aead directamente en la imagen (CONFIG_CRYPTO_USER_API_AEAD=y). La mitigación de modprobe no tiene efecto en esta configuración; la única remediación es una actualización del kernel. detect informa unmitigable_builtin en este caso. Ejecutar fix aún instalará la regla de modprobe (que evita que cualquier copia cargable coexistente se cargue) pero la instancia integrada no se ve afectada — la actualización del kernel y el reinicio son el único remedio real.

blacklist vs install … /bin/false. Ambas directivas bloquean la carga automática ordinaria, pero install algif_aead /bin/false es más fuerte porque también bloquea las invocaciones explícitas ordinarias de modprobe algif_aead. Un administrador con privilegios suficientes aún puede eludir la política de modprobe, por ejemplo usando herramientas de carga de módulos de bajo nivel o banderas especiales de modprobe. copyfail-guard siempre instala la forma más fuerte. Si tu sistema ya tiene una directiva blacklist simple, la herramienta informa mitigated pero emite una nota recomendando la actualización.

SELinux/AppArmor. Las escrituras en /etc/modprobe.d/ en RHEL normalmente heredan system_u:object_r:modules_conf_t:s0 del directorio padre, por lo que normalmente no se necesita un reetiquetado manual para el archivo que escribe copyfail-guard.

initramfs. algif_aead normalmente no se incluye en la imagen de arranque en las principales distribuciones, por lo que copyfail-guard no ejecuta update-initramfs -u ni dracut -f después de instalar la regla de modprobe. Si tu distribución o compilación local incluye algif_aead en initramfs, sigue las pautas de kernel/módulos de tu distribución.

Licencia

Apache 2.0 — consulta LICENSE.

Descargar herramienta