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
copy-fail-cve-2026-31431 — Escáner pasivo de hosts Linux que clasifica la exposición a CVE-2026-31431 mediante la versión del kernel, el changelog de la distribución, el estado de los módulos y la accesibilidad de AF_ALG, con salida JSON para la integración con SIEM. | Kitploit
Herramientas/GitHubGitHub/effiesec/copy-fail-cve-2026-31431
Escáneres de VulnerabilidadesAnálisis de VulnerabilidadesAuditoría de Configuración
GitHubeffiesec/copy-fail-cve-2026-31431

copy-fail-cve-2026-31431

Escáner pasivo de hosts Linux que clasifica la exposición a CVE-2026-31431 mediante la versión del kernel, el changelog de la distribución, el estado de los módulos y la accesibilidad de AF_ALG, con salida JSON para la integración con SIEM.

Ver Repositorio
hace 3 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 →
Compartir

Comprobador de CVE para Copy Fail (CVE-2026-31431)

Autores/Colaboradores: Patrick Doyle (Autor/Mantenedor), Effie Renard (Coautora), Kimberly-Lee Banks (Coautora), Chris F. (Soporte/Revisión de código)

Divulgación de IA: Claude Code se utilizó para escribir archivos de pruebas, escribir datos de prueba y una revisión de seguridad del código. Todas las ediciones fueron auditadas manualmente por uno de los colaboradores.

Descripción

Binario único de Go con enlace estático que clasifica la exposición de un host Linux a CVE-2026-31431.

La herramienta es pasiva. No explota el fallo. La sonda de mecanismo (consulte la declaración de seguridad a continuación) emite exactamente dos llamadas al sistema y nunca toca la ruta de código vulnerable.


Qué Comprueba

SeñalFuenteIndicador
Versión del kernel vs. corrección ascendenteuname(2)--kernel-version
El changelog de la distribución menciona el CVEapt/rpm/apk o changelog.Debian.gz en disco--changelog
Estado del módulo algif_aead/proc/modules, modprobe.d, /lib/modules--module
Superficie vulnerable accesiblesocket(AF_ALG) + bind(authencesn(...))--mechanism
Compilado en vmlinux/boot/config-$(uname -r) o /proc/config.gz(parte de --module)

Si no se proporcionan indicadores de comprobación, se ejecutan las cuatro.


Modos de Salida

ModoActivaciónCaso de uso
Con estilo bonito (Predeterminado)Salida TTY, sin anulación de --format, sin variable de entorno NO_COLOREjecuciones interactivas en shell
Texto planoSalida no TTY, O --format=text, O NO_COLOR=1, O --no-colorScripts de shell, tuberías
JSON--format=jsonIngesta Syslog/SIEM, scripts de shell
Silencioso--quietSolo código de salida (automatización/scripts)

Forzar bonito cuando se usa tubería: cvecheck --pretty | tee report.txt. Forzar plano en una TTY: cvecheck --no-color o NO_COLOR=1 cvecheck.


Declaración de Seguridad (Sonda de Mecanismo)

La sonda emite exactamente dos llamadas al sistema socket(AF_ALG, SOCK_SEQPACKET, 0) y bind(fd, &SockaddrALG{Type:"aead", Name:"authencesn(hmac(sha256), cbc(aes))"}). Luego le sigue close(fd). No realiza ningún setsockopt para una clave, ningún accept, ningún sendmsg, ningún splice y ninguna creación de tubería. La ruta de código vulnerable requiere sendmsg de datos criptográficos combinado con un splice desde un descriptor de archivo respaldado por caché de páginas; ninguna de esas operaciones ocurre, por lo que el fallo no puede activarse.

Una sonda exitosa significa que la superficie es accesible. Si el kernel aún contiene el fallo lo deciden las señales de versión del kernel + changelog.

Efecto secundario: un bind exitoso carga automáticamente algif_aead mediante el cargador automático de módulos del kernel. La comprobación del módulo se ejecuta antes de la sonda de mecanismo, por lo que el informe del estado cargado es previo a la sonda. Para suprimir la carga automática por completo, incluya algif_aead en la lista negra primero.


Códigos de Salida

CódigoSignificado
0PARCHEADO / NO_VULNERABLE / MITIGADO / PROBABLEMENTE_NO_EXPLOTABLE
2VULNERABLE o MECANISMO_ACCESIBLE (escaneo parcial, versión del kernel no comprobada)
3NO_CONCLUYENTE (señales insuficientes)

Cobertura de Distribuciones

DistribuciónDetecciónPaquete de kernelNotas
Ubuntu / Debian / Mint / Pop!_OSaptlinux-image-$(uname -r)La lectura del changelog desde disco primero evita la fragilidad de red de apt changelog en kernels firmados
RHEL / CentOS / Rocky / Alma / Fedora / Amazon LinuxrpmkernelIncluye algif_aead integrado (CONFIG_..._AEAD=y); la mitigación de lista negra no es efectiva
Oracle Linuxrpmkernel o kernel-uekUEK se detecta mediante la subcadena uek en uname -r
openSUSE / SLESrpmkernel-default
Alpineapklinux-lts / linux-virt / etc.La variante se elige según el sufijo de la versión
Arch / CachyOS / Manjaro / Endeavour / Gentooningunon/aRodante/fuente: depende de la comprobación de versión del kernel

Implementación

Instalación Automática

Detecta automáticamente su arquitectura, descarga el binario correcto en $(pwd) y verifica su SHA-256 contra los SHA256SUMS publicados:

root@kitploit:~
curl -fsSL https://copyfail.pcdoyle.dev/install.sh | sh

El script sale con código distinto de cero en caso de discrepancia de suma de verificación y elimina el archivo defectuoso.

Descargar Binario (manual)

Elija el binario para la arquitectura de su host:

ArquitecturaBinario
Intel/AMD 64 bits (x86_64)cvecheck-linux-x86_64
ARM 64 bits (aarch64)cvecheck-linux-arm64
Intel/AMD 32 bits (i?86)cvecheck-linux-x86

Verifique antes de ejecutar:

root@kitploit:~
curl -LO https://github.com/pcdoyle/copy-fail-cve-2026-31431/releases/latest/download/cvecheck-linux-x86_64
curl -LO https://github.com/pcdoyle/copy-fail-cve-2026-31431/releases/latest/download/SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS
chmod +x cvecheck-linux-x86_64

Compilar desde el Código Fuente

root@kitploit:~
make build  # bin/cvecheck-linux-{x86_64,arm64,x86}
# SCP(SFTP) al Servidor:
scp ./bin/cvecheck-linux-x86_64 host:/tmp/  # Menos de 4 MB, estático, sin dependencia de glibc

Ejecutar el Programa

SSH al Host

root@kitploit:~
# SSH:
ssh <host>
# Ejecutar Binario:
/tmp/cvecheck-linux-x86_64  # Salida bonita amigable para humanos.
/tmp/cvecheck-linux-x86_64 --format=json # Amigable para Scripts, Syslog y SIEM
/tmp/cvecheck-linux-x86_64 --format=text # Amigable para Scripts y Tuberías

Ejecutar como Comando Remoto SSH

root@kitploit:~
ssh <host> /tmp/cvecheck-linux-x86_64   # Si se ejecuta directamente, usa --format=text por defecto
ssh <host> /tmp/cvecheck-linux-x86_64 --format=json # Amigable para Syslog/SIEM

Para Contenedores/Chroot:

Monte la raíz del host en algún lugar legible y pase --root:

root@kitploit:~
docker run --rm -v /:/host:ro alpine /tmp/cvecheck --root /<host-path>

--root controla todas las búsquedas en disco (/etc/os-release, modprobe.d, /lib/modules, /boot/config-*, archivos de changelog). Las sondas de versión del kernel y de mecanismo aún tocan el kernel en ejecución mediante uname(2) y socket(AF_ALG, ...).


Escalera de Precedencia

Se resuelve en este orden (la primera coincidencia gana):

  1. PARCHEADO: El changelog de la distribución hace referencia al ID del CVE.
  2. NO_VULNERABLE: El kernel en ejecución >= versión corregida ascendente.
  3. MITIGADO: algif_aead en lista negra y no cargado y no integrado en vmlinux.
  4. PROBABLEMENTE_NO_EXPLOTABLE: AF_ALG no disponible y el módulo no está en disco.
  5. MECANISMO_ACCESIBLE: Superficie accesible pero versión del kernel no comprobada.
  6. VULNERABLE: Kernel en rango vulnerable y mecanismo accesible.
  7. NO_CONCLUYENTE: Ninguna de las anteriores coincide.

Si --mechanism se ejecuta junto con --kernel-version y ambas señales indican problemas, el resultado es VULNERABLE con una sugerencia de remediación.


Sugerencias de Remediación

  • Distribuciones con módulos cargables (Debian, Ubuntu, SUSE, Alpine, Arch): incluya algif_aead en lista negra hasta que se aplique la actualización del kernel.
    root@kitploit:~
    echo 'blacklist algif_aead' | sudo tee /etc/modprobe.d/cve-2026-31431.conf
    sudo rmmod algif_aead 2>/dev/null
    
  • Distribuciones con integración (RHEL, CentOS, Rocky, Alma, Oracle, Amazon): los archivos de lista negra no tienen efecto porque CONFIG_CRYPTO_USER_API_AEAD=y coloca el símbolo dentro de vmlinux. Solo una actualización del kernel (o un parche en vivo estilo kpatch) resuelve la exposición. La herramienta lo detecta.

Solución de Problemas

SíntomaCausaSolución
changelog: error="apt: exit status 100 ... Changelog unavailable for linux-signed-amd64"Kernel firmado Debian/Ubuntu; el espejo apt no sirve el changelog del paquete fuenteEl error aparece solo cuando el archivo en disco falta además de que el espejo es inaccesible; instale apt-doc o espere al espejo.
module: ... config_src=""No hay configuración de kernel legible (sin /boot/config-*, sin /proc/config.gz, /boot es solo raíz)Ejecute como root, o acepte que BuiltIn no puede determinarse. El veredicto aún puede resolverse mediante otras señales.
mechanism: error="EAFNOSUPPORT"Kernel compilado sin CONFIG_CRYPTO_USER_API, por lo que el host no es vulnerable mediante AF_ALGEl veredicto será PROBABLEMENTE_NO_EXPLOTABLE.

Fuentes

  • Base de datos de CVE de NIST
  • Sitio oficial de Copy.Fail
  • Informe técnico oficial
  • Aviso de oss-security
  • Informe de Theori
  • Resumen de Bugcrowd
Descargar herramienta