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
block-copyfail — BPF LSM blocker para CVE-2026-31431 (Copy Fail) — bloquea los binds de authencesn AF_ALG en tiempo de ejecución sin reiniciar | Kitploit
Herramientas/GitHubGitHub/atgreen/block-copyfail
Herramientas DefensivasAnálisis Dinámico (Sandboxing)Análisis de VulnerabilidadesRespuesta a Incidentes
GitHubatgreen/block-copyfail

block-copyfail

BPF LSM blocker para CVE-2026-31431 (Copy Fail) — bloquea los binds de authencesn AF_ALG en tiempo de ejecución sin reiniciar

Ver Repositorio
73hace 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

block-copyfail

Prueba de concepto de mitigación en tiempo de ejecución para CVE-2026-31431 ("Copy Fail") — una escalada de privilegios en el kernel de Linux mediante la plantilla criptográfica authencesn en algif_aead.

A diferencia del bloqueo de módulos, esto no requiere reinicio. Un programa BPF LSM engancha socket_bind y bloquea todos los binds AEAD de AF_ALG — el subsistema explotado por Copy Fail. Esto evita bypasses mediante anidamiento de plantillas criptográficas (p. ej. pcrypt(authencesn(...))). Otros usos de AF_ALG (hash, skcipher) no se ven afectados.

Los intentos bloqueados se registran en tiempo real con PID, nombre del proceso y marca de tiempo.

Requisitos previos

  • Kernel de Linux 5.7+ con CONFIG_BPF_LSM=y y lsm=bpf en los parámetros de arranque
  • SBCL 2.0+
  • Whistler (compilador eBPF en Common Lisp)
  • root@kitploit:~
    make doctor   # comprueba todos los requisitos previos
    

    Inicio rápido

    root@kitploit:~
    git clone https://github.com/atgreen/block-copyfail.git
    cd block-copyfail
    make ubi8-build
    sudo ./block-copyfail
    

    El bloqueador permanece activo hasta que pulses Ctrl-C, y luego se desengancha limpiamente.

    Compilar localmente

    Para compilar en tu propia máquina necesitas SBCL y Whistler (el compilador eBPF en Common Lisp):

    root@kitploit:~
    git clone https://github.com/atgreen/whistler.git ~/git/whistler
    make build
    sudo ./block-copyfail
    

    Compilar un binario portátil (EL8+)

    Compila dentro de un contenedor UBI8 para producir un binario que funcione en RHEL/CentOS/Alma/Rocky 8+, Fedora, Ubuntu 20.04+ y cualquier Linux con glibc 2.28 o superior. No se necesita SBCL ni Whistler en el sistema de destino — solo copia el binario y ejecútalo.

    root@kitploit:~
    make ubi8-build
    scp block-copyfail root@server:
    ssh root@server ./block-copyfail
    

    Compilar a objeto ELF

    Produce un archivo .bpf.o estándar cargable por bpftool, libbpf o cualquier cargador BPF:

    root@kitploit:~
    make elf
    sudo mkdir -p /sys/fs/bpf/copyfail
    sudo bpftool prog loadall block-copyfail.bpf.o /sys/fs/bpf/copyfail autoattach
    

    Para desenganchar y eliminar:

    root@kitploit:~
    sudo rm -rf /sys/fs/bpf/copyfail
    

    Pruebas

    Con el bloqueador ejecutándose en una terminal, dispara una prueba en otra:

    root@kitploit:~
    python3 trigger-test.py
    

    El script de prueba intenta un bind AEAD de AF_ALG (no se realiza ningún exploit).

    Salida esperada en la terminal de prueba:

    root@kitploit:~
    BLOCKED: aead/authencesn(hmac(sha256),cbc(aes)) — [Errno 1] Operation not permitted
    BLOCKED: aead/gcm(aes) — [Errno 1] Operation not permitted
    ALLOWED: hash/sha256
    ALLOWED: skcipher/cbc(aes)
    

    Salida esperada en la terminal del bloqueador:

    root@kitploit:~
    Copy Fail blocker active — all AF_ALG AEAD binds blocked.
    Other AF_ALG usage (hash, skcipher) unaffected.
    Watching for blocked attempts. Press Ctrl-C to exit.
    
    TIME                  PID       COMMAND
    ----                  ---       -------
    06:38:12               31337  python3
    

    Sin el bloqueador ejecutándose, el script de prueba imprime ALLOWED para los cuatro algoritmos.

    Cómo funciona

    El programa BPF lee 7 bytes de struct sockaddr_alg de los argumentos de socket_bind mediante bpf_probe_read_kernel, comprueba salg_family == AF_ALG y salg_type == "aead", y devuelve -EPERM en caso de coincidencia. Esto bloquea todos los binds de algoritmos AEAD independientemente del anidamiento de plantillas. Los eventos se envían al espacio de usuario mediante un ring buffer.

    Escrito en Whistler, un dialecto de Common Lisp que compila directamente a bytecode eBPF — sin C, clang ni LLVM.

    Licencia

    MIT

    Descargar herramienta