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 — Mitigación rápida y auditable de Linux para CVE-2026-31431 Copy Fail: bloqueo de algif_aead, verificación y endurecimiento de seccomp de AF_ALG. | Kitploit
Herramientas/GitHubGitHub/juliosuas/copyfail-guard
Herramientas DefensivasSeguridad de ContenedoresAnálisis de VulnerabilidadesAuditoría de ConfiguraciónSeguridad en la NubeDevSecOpsRespuesta a Incidentes
GitHubjuliosuas/copyfail-guard

copyfail-guard

Mitigación rápida y auditable de Linux para CVE-2026-31431 Copy Fail: bloqueo de algif_aead, verificación y endurecimiento de seccomp de AF_ALG.

Ver Repositorio
22hace 1 mesAú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 →
Compartir

CopyFail Guard

CI License: MIT Platform Shell No exploit code

root@kitploit:~
   ______                 ______      _ __   ______                     __
  / ____/___  ____  __  _/ ____/___ _(_) /  / ____/_  ______ __________/ /
 / /   / __ \/ __ \/ / / / /_  / __ `/ / /  / / __/ / / / __ `/ ___/ __  /
/ /___/ /_/ / /_/ / /_/ / __/ / /_/ / / /  / /_/ / /_/ / /_/ / /  / /_/ /
\____/\____/ .___/\__, /_/    \__,_/_/_/   \____/\__,_/\__,_/_/   \__,_/
          /_/    /____/

Evaluación y mitigación rápida y auditable de la exposición en Linux para CVE-2026-31431 “Copy Fail” mientras los kernels se parchean.

CopyFail Guard es una herramienta de operaciones defensivas para administradores de sistemas Linux, ingenieros DevSecOps, equipos de plataforma y respondedores de incidentes. Ayuda a reducir la exposición al problema de / de Linux al:

algif_aead
AF_ALG
  • evaluar de forma segura la exposición sin código de explotación
  • comprobar si algif_aead está disponible, cargado, integrado en el kernel o ya bloqueado
  • instalar un bloqueo persistente en modprobe.d y descargar el módulo cuando sea seguro
  • añadir una regla de denegación de AF_ALG a los perfiles seccomp de Docker, Podman y Kubernetes
  • validar la accesibilidad de AF_ALG sin incluir código de explotación

Solución final: instala el kernel parcheado de tu proveedor y reinicia.
Esta herramienta cubre la brecha operativa entre la divulgación y el parcheo completo de la flota.

Por qué los operadores pueden confiar en ella

  • Sin código de explotación: comprueba la exposición y la accesibilidad de AF_ALG sin escrituras en la page cache, splice, cambios de setuid, escalada de privilegios ni sondeos destructivos.
  • Cambio de host auditable: la mitigación del host escribe un único archivo gestionado, /etc/modprobe.d/99-copyfail-guard.conf, y el rollback elimina solo ese archivo.
  • Seccomp que preserva la configuración base: seccomp-patch añade una denegación de AF_ALG a un perfil seccomp existente de Docker/Podman/Kubernetes en lugar de reemplazar el endurecimiento de tu runtime.
  • Listo para automatización: assess --json y los códigos de salida documentados respaldan los escaneos de flota, la captura en SIEM y la evidencia de gestión de cambios.
  • Cobertura de CI: la sintaxis de shell, la generación de perfiles seccomp, la salida JSON y las pruebas de humo se ejecutan en contenedores de distribuciones Linux comunes.

Recorrido de 30 segundos

Si estás en un host Linux y necesitas una respuesta rápida:

root@kitploit:~
git clone --depth 1 https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
sudo ./bin/copyfail-guard.sh doctor
sudo ./bin/copyfail-guard.sh assess

Si el veredicto indica exposición y algif_aead es modular:

root@kitploit:~
sudo ./bin/copyfail-guard.sh mitigate --yes
sudo ./bin/copyfail-guard.sh verify

Para instalaciones repetibles, fija una etiqueta de versión:

root@kitploit:~
git clone --branch v0.3.0 --depth 1 https://github.com/juliosuas/copyfail-guard.git

Reemplaza v0.3.0 con la última versión etiquetada cuando haya versiones más recientes disponibles.

¿Estoy afectado?

Ejecuta primero la comprobación segura de exposición:

root@kitploit:~
sudo ./bin/copyfail-guard.sh assess

Cómo interpretar el resultado:

Familia de veredictoQué significaQué hacer
EXPOSED_*algif_aead / AF_ALG parece accesible o cargableMitiga ahora; luego aplica el parche y reinicia
PARTIALLY_MITIGATED_*Existe un bloqueo, pero el módulo cargado o el estado de reinicio aún importanReinicia o descarga de forma segura; luego verifica
INTERIM_MITIGATED_*La mitigación local está activaConsérvala, pero igualmente aplica el parche y reinicia
LOW_OBVIOUS_EXPOSURE_*Las comprobaciones locales no encontraron exposición obvia de algif_aeadConfirma igualmente el estado del parche del proveedor

Si ejecutas contenedores no confiables, trabajos de CI, sandboxes o cargas de trabajo multiusuario, prueba también si la creación de sockets AF_ALG está bloqueada dentro de ese runtime:

root@kitploit:~
python3 tools/afalg-socket-test.py

PERMITTED no demuestra una explotación exitosa, pero demuestra que la API criptográfica relevante del espacio de usuario es accesible. Para operaciones defensivas, eso es razón suficiente para aplicar la mitigación mientras confirmas el despliegue del kernel parcheado.

¿Esto demuestra la vulnerabilidad?

No se incluye ninguna prueba de concepto destructiva. Eso es una característica, no una carencia.

Una prueba real de explotación de Copy Fail necesitaría validar el impacto en la memoria del kernel o en la page cache, o la escalada de privilegios. Incluir eso en un repositorio público de mitigación haría que el proyecto fuera menos seguro y menos desplegable en producción.

CopyFail Guard demuestra las cosas sobre las que los operadores pueden actuar de forma segura:

  • si el componente riesgoso está disponible, cargado, integrado en el kernel o bloqueado
  • si la creación de sockets AF_ALG está permitida en un runtime de destino
  • si el host tiene una mitigación intermedia activa
  • si la acción requerida restante es descargar el módulo, reiniciar, aplicar seccomp o parchear con el proveedor

Para conocer el estado final de vulnerabilidad, combina esta herramienta con el aviso del proveedor, el inventario de paquetes y la evidencia de reinicio.

Modelo de resolución

CopyFail Guard es mitigación, no cura. Reduce la exposición y verifica los controles intermedios. La solución duradera sigue siendo el kernel parcheado por el proveedor más el reinicio.

La herramienta está diseñada intencionalmente para clonar y ejecutar en respuesta a incidentes: no se requieren compilador, cabeceras del kernel, código de explotación ni gestor de paquetes de terceros para el flujo principal del host. python3 es necesario para la salida --json, seccomp-patch y la prueba de sockets AF_ALG sin explotación.

Inicio rápido

Clonar y ejecutar:

root@kitploit:~
git clone https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
chmod +x bin/copyfail-guard.sh

sudo ./bin/copyfail-guard.sh doctor
sudo ./bin/copyfail-guard.sh assess
sudo ./bin/copyfail-guard.sh mitigate --yes
sudo ./bin/copyfail-guard.sh verify

Instalación opcional en el sistema:

root@kitploit:~
git clone https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
sudo ./scripts/install.sh
sudo copyfail-guard status

El instalador permite fijar el origen y el destino para despliegues controlados:

root@kitploit:~
sudo env COPYFAIL_GUARD_REF=v0.3.0 ./scripts/install.sh

Usa la última versión etiquetada para COPYFAIL_GUARD_REF cuando haya versiones más recientes disponibles.

Endurecimiento de contenedores / CI:

root@kitploit:~
./bin/copyfail-guard.sh seccomp-patch docker-default.json copyfail-seccomp.json
docker run --security-opt seccomp=./copyfail-seccomp.json IMAGE

Valida que AF_ALG está bloqueado dentro de un contenedor protegido:

root@kitploit:~
docker run --rm \
  --security-opt seccomp=./copyfail-seccomp.json \
  -v "$PWD/tools:/tools:ro" \
  python:3.12-alpine \
  python /tools/afalg-socket-test.py

Resultado protegido esperado:

root@kitploit:~
BLOCKED: socket(AF_ALG) denied by policy (...)

Consulta Salidas de ejemplo para ver los veredictos esperados, el formato JSON y los resultados de validación de contenedores.

Por qué esto es importante

Copy Fail es una escalada de privilegios local del kernel de Linux en el componente algif_aead de la API criptográfica AF_ALG del espacio de usuario. Los avisos públicos describen una primitiva de escritura en la page cache alcanzable por usuarios locales sin privilegios y especialmente peligrosa en sistemas con kernel compartido: nodos Kubernetes, runners de CI/CD, hosts multiinquilino, sandboxes de agentes y máquinas de desarrolladores.

La solución correcta es una actualización del kernel del proveedor que contenga la reversión/corrección upstream y un reinicio con el kernel parcheado. CopyFail Guard es una ayuda de operaciones defensivas para la ventana antes de que ese reinicio se complete en toda la flota.

Qué hace la herramienta

ÁreaComandoPropósito
Evaluación seguraassessEmitir un veredicto de exposición sin explotación, las acciones siguientes y un código de salida apto para automatización
Comprobación de dependenciasdoctorComprobar las herramientas requeridas/opcionales y explicar las limitaciones del runtime
Inspección del hoststatusMostrar SO/kernel, disponibilidad del módulo, estado de carga, advertencia de módulo integrado, bloqueo de modprobe y consumidores obvios de AF_ALG
Mitigación del hostmitigateEscribir /etc/modprobe.d/99-copyfail-guard.conf e intentar descargar algif_aead
VerificaciónverifyFallar claramente si el módulo está cargado, integrado o no bloqueado
RollbackrollbackEliminar únicamente el archivo de modprobe gestionado por CopyFail Guard
Contenedoresseccomp-patchParchear un perfil seccomp existente para denegar socket(AF_ALG, ...) preservando el uso normal de sockets
Perfil de emergenciaseccomp-dockerGenerar un perfil específico de denegación de AF_ALG para uso de emergencia
Kubernetesk8s-exampleImprimir un ejemplo de pod seccomp Localhost

Requisitos de instalación

Comandos principales del host:

  • Linux
  • bash
  • herramientas kmod: modinfo, modprobe, lsmod, rmmod donde estén disponibles
  • grep, awk, mktemp, install

Herramientas de visibilidad opcionales:

  • lsof o ss para comprobaciones de consumidores de AF_ALG

Parcheo de perfiles seccomp:

  • python3 es necesario para --json, seccomp-patch y tools/afalg-socket-test.py

No se requieren código de explotación, compilador, cabeceras del kernel ni paquetes de terceros.

Evaluación segura vs. prueba de concepto

CopyFail Guard no incluye una prueba de concepto de explotación. Eso es intencional. Consulta ¿Esto demuestra la vulnerabilidad?.

En su lugar, assess realiza una comprobación operativa segura:

  • detecta si algif_aead parece disponible, cargado, integrado en el kernel o bloqueado
  • distingue entre “mitigado provisionalmente” y “realmente resuelto”
  • recomienda mitigación del host, seccomp o parche/reinicio
  • devuelve códigos de salida para la automatización de flotas

JSON de automatización:

root@kitploit:~
sudo ./bin/copyfail-guard.sh assess --json
./bin/copyfail-guard.sh doctor --json

Códigos de salida:

CódigoSignificado
0Exposición obvia baja según las comprobaciones locales
1Mitigación intermedia activa; aún se requiere parche/reinicio
10Expuesto/mitigación disponible
11Parcialmente mitigado; se necesita reinicio o descarga del módulo
12Módulo integrado en el kernel; se requiere parche/reinicio
20Estado de evaluación desconocido

Detalles de la mitigación del host

mitigate escribe:

root@kitploit:~
/etc/modprobe.d/99-copyfail-guard.conf

con:

root@kitploit:~
# Managed by CopyFail Guard for CVE-2026-31431
install algif_aead /bin/false
blacklist algif_aead

Luego intenta:

root@kitploit:~
sudo rmmod algif_aead

Si el módulo está actualmente en uso, rmmod puede fallar. En ese caso, el bloqueo persistente permanece instalado; detén los consumidores de AF_ALG o reinicia después de aplicar la mitigación.

El script se niega a sobrescribir un enlace simbólico en su ruta de modprobe gestionada y escribe el archivo de forma atómica con permisos seguros.

Endurecimiento de contenedores y CI

Para cargas de trabajo no confiables, bloquea la creación de sockets AF_ALG con seccomp incluso mientras parcheas los hosts.

Ruta recomendada: parchea la configuración base de seccomp de tu runtime existente en lugar de reemplazarla:

root@kitploit:~
./bin/copyfail-guard.sh seccomp-patch docker-default.json copyfail-seccomp.json

Uso con Docker:

root@kitploit:~
docker run --security-opt seccomp=./copyfail-seccomp.json IMAGE

Uso con Podman:

root@kitploit:~
podman run --security-opt seccomp=./copyfail-seccomp.json IMAGE

Ruta solo de emergencia si no dispones de un perfil base:

root@kitploit:~
./bin/copyfail-guard.sh seccomp-docker ./copyfail-afalg-seccomp.json

El perfil de emergencia generado bloquea AF_ALG, pero por lo demás permite las llamadas al sistema. Trátalo como una solución provisional específica, no como un reemplazo del endurecimiento seccomp predeterminado normal de Docker.

Para Kubernetes, coloca el perfil bajo la raíz seccomp de kubelet, comúnmente:

root@kitploit:~
/var/lib/kubelet/seccomp/profiles/copyfail-seccomp.json

Luego refiérelo con:

root@kitploit:~
securityContext:
  seccompProfile:
    type: Localhost
    localhostProfile: profiles/copyfail-seccomp.json

Consulta examples/kubernetes-seccomp-pod.yaml.

Validación segura

Este proyecto incluye una prueba de accesibilidad de AF_ALG sin explotación:

root@kitploit:~
python3 tools/afalg-socket-test.py

Solo intenta crear y cerrar un socket AF_ALG. No enlaza operaciones criptográficas, no llama a splice, no toca binarios setuid, no corrompe la page cache ni intenta escalar privilegios.

Resultados:

  • BLOCKED significa que la política denegó AF_ALG para ese proceso.
  • PERMITTED significa que la creación de sockets AF_ALG aún está permitida para ese proceso.
  • UNSUPPORTED significa que AF_ALG no está disponible en ese runtime.

Validación comunitaria

CopyFail Guard necesita informes de compatibilidad del mundo real de hosts Linux, runtimes de contenedores, runners de CI y nodos Kubernetes. Si puedes probarlo de forma segura, abre un issue de Informe de compatibilidad con la salida saneada de doctor, assess --json, verify o de la prueba de sockets AF_ALG.

Los informes útiles ayudan a responder:

  • qué combinaciones de distro/kernel/runtime son fáciles de mitigar
  • dónde algif_aead está integrado en el kernel y solo requiere parche/reinicio
  • qué configuraciones base de seccomp necesitan notas específicas del runtime
  • si la documentación es lo suficientemente clara para su uso en respuesta a incidentes

Consulta la Guía de validación comunitaria.

Comandos

root@kitploit:~
copyfail-guard assess                 Safe exposure assessment, no exploit attempt
copyfail-guard status                 Inspect host exposure indicators
copyfail-guard doctor                 Check dependencies and runtime readiness
copyfail-guard mitigate               Disable algif_aead persistently and unload it
copyfail-guard verify                 Verify host mitigation is active
copyfail-guard rollback               Remove CopyFail Guard's modprobe mitigation
copyfail-guard seccomp-docker [FILE]  Generate emergency AF_ALG-deny profile
copyfail-guard seccomp-patch BASE OUT Patch existing seccomp profile safely
copyfail-guard k8s-example            Print Kubernetes seccomp example

Las banderas se pueden colocar antes o después del comando:

root@kitploit:~
--dry-run      Show planned changes without writing files or unloading modules
--yes          Non-interactive confirmation
--no-logo      Disable ASCII banner
--json         Emit JSON for supported commands: assess, doctor

Qué no debería romperse

En configuraciones típicas, no se espera que deshabilitar algif_aead afecte a:

  • LUKS / dm-crypt
  • SSH
  • compilaciones predeterminadas de OpenSSL, GnuTLS, NSS
  • kTLS / TLS en el kernel
  • IPsec / XFRM
  • consumidores criptográficos normales del kernel

Puede afectar a aplicaciones configuradas explícitamente para usar el motor AF_ALG o a aplicaciones que crean sockets AF_ALG directamente. Comprueba primero:

root@kitploit:~
sudo lsof | grep AF_ALG || true
ss -xa | grep -i alg || true

Documentación para operadores

  • Runbook de respuesta a incidentes
  • Guía de despliegue en flota
  • Guía de validación comunitaria
  • Salidas de ejemplo
  • Lista de verificación de versiones
  • Notas de validación de seccomp
  • Modelo de evaluación segura
  • Política de seguridad
  • Política de soporte
  • Guía de contribución
  • Registro de cambios

Madurez del proyecto

  • Alcance actual: evaluación defensiva, mitigación del host para algif_aead modular, endurecimiento seccomp para cargas de trabajo no confiables y rollback.
  • Usuario admitido: operadores familiarizados con el endurecimiento de hosts Linux y contenedores.
  • Estilo de versionado: versiones etiquetadas, entradas de changelog, pruebas de humo con GitHub Actions y plantillas de issues para informes reproducibles.
  • Señal comunitaria: los informes de compatibilidad son la señal de confianza más sólida; la evidencia de campo puede convertirse en documentación, pruebas y ejemplos.
  • Promesa de estabilidad: evitar comportamientos de explotación, mantener acotadas las escrituras en el host, documentar la semántica de los códigos de salida y preservar las configuraciones base de seccomp existentes del runtime.

Limitaciones

CopyFail Guard no:

  • parchea tu kernel
  • demuestra si tu compilación exacta del kernel es explotable
  • incluye código de explotación
  • protege contra usuarios root ya comprometidos
  • reemplaza el EDR, el inventario de flota, los avisos del proveedor ni la planificación de reinicios

La mitigación del módulo del host funciona para algif_aead modular. Si algif_aead está integrado en tu kernel, modprobe.d y rmmod no pueden deshabilitarlo; el parche/reinicio es obligatorio y se debe usar seccomp para las cargas de trabajo no confiables mientras se parchea.

Seccomp protege solo las cargas de trabajo lanzadas con el perfil. Los contenedores o pods existentes en ejecución deben reiniciarse con el perfil endurecido.

Rollback

root@kitploit:~
sudo ./bin/copyfail-guard.sh rollback --yes

El rollback elimina solo el archivo gestionado por esta herramienta. No vuelve a cargar el módulo. Reinicia o ejecuta manualmente modprobe algif_aead solo si lo necesitas explícitamente y has aceptado el riesgo o has parcheado el kernel.

Preguntas frecuentes

¿Esto reemplaza al parcheo?

No. El parche y el reinicio siguen siendo la solución final.

¿Esto prueba la explotación?

No. El proyecto evita intencionalmente los comportamientos de explotación. tools/afalg-socket-test.py solo comprueba si la creación de sockets AF_ALG es accesible.

¿Por qué bloquear AF_ALG en contenedores incluso después de la mitigación del host?

Defensa en profundidad. Las cargas de trabajo de contenedores y CI son lugares habituales donde se ejecuta código no confiable sobre un kernel compartido. Seccomp hace que el primer paso de esta clase de ataque sea inalcanzable para esa carga de trabajo.

¿Por qué parchear un perfil seccomp existente en lugar de generar uno nuevo?

Porque los perfiles predeterminados del runtime contienen muchas decisiones de endurecimiento. Reemplazarlos con un perfil de emergencia mínimo puede eliminar protecciones accidentalmente. seccomp-patch conserva tu configuración base y añade la denegación de AF_ALG.

¿Puedo usarlo en toda una flota?

Sí. Comienza con doctor y assess --json, prueba la mitigación en una pequeña muestra de Linux y luego despliega la mitigación del host y los cambios de perfiles seccomp por separado. Consulta la Guía de despliegue en flota.

Referencias

  • NVD: CVE-2026-31431
  • Aviso CERT-EU: vulnerabilidad alta en el kernel de Linux (“Copy Fail”)
  • Entrada de vulnerabilidades explotadas conocidas de CISA
  • Aviso técnico público de copy.fail
  • Corrección estable de Linux: crypto: algif_aead - Revert to operating out-of-place

Autor

Creado por Julio César Suástegui Calderón.

Ingeniería de seguridad, sistemas Linux y automatización defensiva práctica.

Licencia

MIT

Descargar herramienta