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-detection-probe — Herramientas de detección segura para CVE-2026-31431 "Copy Fail" y CVE-2026-43284 "Dirty Frag": una escalada de privilegios local en el módulo algif_aead del kernel de Linux que afecta a todas las distribuciones principales desde 2017. | Kitploit
Herramientas/GitHubGitHub/ochebotar/copy-fail-cve-2026-31431-detection-probe
Escalada de PrivilegiosEscáneres de VulnerabilidadesAnálisis de VulnerabilidadesExplotaciónAuditoría de ConfiguraciónDevSecOpsInteligencia de AmenazasAprendizaje y EducaciónRespuesta a Incidentes

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
Recursos Curados
GitHubochebotar/copy-fail-cve-2026-31431-detection-probe

copy-fail-CVE-2026-31431-detection-probe

Herramientas de detección segura para CVE-2026-31431 "Copy Fail" y CVE-2026-43284 "Dirty Frag": una escalada de privilegios local en el módulo algif_aead del kernel de Linux que afecta a todas las distribuciones principales desde 2017.

Ver Repositorio
102hace 3 mesesAún no revisado

Suite de Sondas LPE del Kernel de Linux — Copy Fail y Dirty Frag

License: MIT CVE-2026-31431 CVE-2026-43284 CVE-2026-43500 CVSS Shell

Herramientas de detección seguras para dos familias de vulnerabilidades relacionadas de escalada de privilegios local del kernel de Linux — Copy Fail (CVE-2026-31431) y Dirty Frag (CVE-2026-43284 / CVE-2026-43500) — ambas afectan a todas las distribuciones principales desde 2017, ambas explotables por cualquier usuario local sin privilegios, y ambas requieren mitigaciones independientes.

Estas sondas no abren sockets y no realizan operaciones criptográficas ni de red. La detección se basa únicamente en la versión del kernel, los metadatos de paquetes de la distribución, el estado de los módulos y los indicadores de mitigación activos — todo legible por cualquier usuario sin sudo.


⚠️ Importante: dos vulnerabilidades separadas

Aplicar la mitigación de Copy Fail NO protege contra Dirty Frag. Deben ejecutarse ambas sondas y aplicarse ambas mitigaciones de forma independiente.


Archivos

root@kitploit:~
.
├── cve-2026-31431-check.sh          Copy Fail probe (all output modes)
├── copy_fail_userparameter.conf     Zabbix agent UserParameter — Copy Fail
├── zabbix_template_copy_fail.yaml   Zabbix 6.4 template — Copy Fail
├── copy_fail_auditd.rules           auditd behavioral detection — Copy Fail
├── cve-2026-43284-check.sh          Dirty Frag probe (all output modes)
├── dirty_frag_userparameter.conf    Zabbix agent UserParameter — Dirty Frag
├── wazuh_sca/
│   └── copy_fail_sca.yml            Wazuh SCA compliance policy
└── ansible/
    └── copy_fall_scan.yml           Fleet-wide Ansible scan playbook

CVE-2026-31431 — Copy Fail

Contexto

El exploit requiere exactamente esta cadena de syscalls:

root@kitploit:~
socket(AF_ALG, SOCK_SEQPACKET, 0)
bind(fd, {alg_type="aead", alg_name="authesn(hmac(sha256),cbc(aes))"})
accept(fd, ...)
splice(suid_binary_fd, op_fd)   ← page cache fed into crypto subsystem
sendmsg / recvmsg               ← 4-byte scratch write lands in page cache

La sonda no toca ninguna de ellas. La detección se basa en:

  1. Rango de versiones del kernel — regresión en 4.14–6.17; corregido en 6.18.22 / 6.19.12 / 6.20+
  2. Versión del paquete de la distribución — detección de backports del proveedor con umbrales de parche conocidos
  3. Estado del módulo — cargado, ausente, integrado (built-in) o .ko en disco (auto-cargable)
  4. Mitigaciones activas — lista negra de modprobe.d y el indicador initcall_blacklist en la línea de comandos del kernel

Inicio rápido

root@kitploit:~
chmod +x cve-2026-31431-check.sh
./cve-2026-31431-check.sh           # human-readable
./cve-2026-31431-check.sh --json    # machine-readable
./cve-2026-31431-check.sh --nagios  # Nagios/Icinga/NRPE
./cve-2026-31431-check.sh --zabbix  # integer 0/1/2 for Zabbix item

Códigos de salida: 0 = PATCHED o MITIGATED · 1 = VULNERABLE · 2 = UNKNOWN

Versiones de paquetes parcheados

El script compara automáticamente contra estos umbrales y establece el veredicto en PATCHED cuando el paquete en ejecución iguala o supera el umbral.

Familia RHEL: advertencia sobre el módulo integrado (built-in)

En RHEL, AlmaLinux, Rocky Linux y derivados, algif_aead está compilado dentro del kernel. La solución alternativa de modprobe.d no tiene efecto. Solo funciona initcall_blacklist=algif_aead_init en la línea de comandos del kernel. La sonda detecta esta situación y advierte explícitamente.

root@kitploit:~
grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"
reboot

CVE-2026-43284 / CVE-2026-43500 — Dirty Frag

Contexto

Dirty Frag encadena dos errores de ruta rápida (fast-path) de descifrado in-place descubiertos por Hyunwoo Kim (@v4bel), divulgados alrededor del 2026-05-07, una semana después de Copy Fail:

  • CVE-2026-43284 — ruta rápida xfrm-ESP (esp4, esp6); corrección upstream f4c50a4034e6
  • CVE-2026-43500 — ruta rápida RxRPC (rxrpc); corrección upstream aa54b1d27fe0

El exploit adjunta páginas de pipe de la caché de páginas de /usr/bin/su como fragmentos paginados de socket-buffer y luego realiza un descifrado in-place con una clave elegida por el atacante — escribiendo bytes arbitrarios directamente en la copia en caché de un binario setuid, sin tocar el archivo en disco.

La mitigación de Copy Fail (lista negra de algif_aead) NO previene Dirty Frag.

Inicio rápido

root@kitploit:~
chmod +x cve-2026-43284-check.sh
./cve-2026-43284-check.sh           # human-readable
./cve-2026-43284-check.sh --json    # machine-readable
./cve-2026-43284-check.sh --nagios  # Nagios/Icinga/NRPE
./cve-2026-43284-check.sh --zabbix  # integer 0/1/2 for Zabbix item

La sonda comprueba esp4, esp6 y rxrpc de forma independiente e informa de los booleanos separados cve_43284_safe / cve_43500_safe en la salida JSON.

Advertencia sobre IPsec

esp4 y esp6 son las transformaciones ESP del lado del kernel utilizadas por IPsec (strongSwan, Libreswan). Ponerlas en la lista negra rompe los túneles IPsec. La sonda detecta el uso activo de IPsec mediante ip xfrm state y la detección de daemons, y ajusta el consejo de remediación en consecuencia:

  • Sin IPsec: aplique la lista negra completa de modprobe.d para los tres módulos.
  • IPsec en uso: restrinja los espacios de nombres (namespaces) de usuario sin privilegios (bloquea la ruta ESP; ponga también rxrpc en la lista negra por separado si no es necesario):
    root@kitploit:~
    # RHEL-family
    sysctl -w user.max_user_namespaces=0
    echo "install rxrpc /bin/false" >> /etc/modprobe.d/dirtyfrag.conf
    
    # Ubuntu / Debian
    sysctl -w kernel.unprivileged_userns_clone=0
    echo "install rxrpc /bin/false" >> /etc/modprobe.d/dirtyfrag.conf
    

Versiones de paquetes parcheados

DistribuciónCVE-2026-43284CVE-2026-43500 (rxrpc)
RHEL / Rocky / Alma 8.104.18.0-553.123.2.el8_10N/A — rxrpc no se incluye en RHEL 8
RHEL / Rocky / Alma 9.x

Para los sistemas que esperan un kernel parcheado, aplique la lista negra de modprobe.d de inmediato (teniendo en cuenta la advertencia de IPsec).

RHEL 8 / rxrpc

AlmaLinux / RHEL 8 no compila el módulo rxrpc en absoluto. La sonda marca automáticamente kernel_vuln_rxrpc=not_affected en RHEL/Rocky/Alma 8.x.


Integraciones de monitorización

Zabbix

Despliegue ambas sondas en cada host monitorizado:

root@kitploit:~
mkdir -p /etc/zabbix/scripts
install -m 750 -o zabbix -g zabbix cve-2026-31431-check.sh /etc/zabbix/scripts/
install -m 750 -o zabbix -g zabbix cve-2026-43284-check.sh /etc/zabbix/scripts/

cp copy_fail_userparameter.conf /etc/zabbix/zabbix_agentd.d/
cp dirty_frag_userparameter.conf /etc/zabbix/zabbix_agentd.d/
systemctl restart zabbix-agent   # or zabbix-agent2

Importe zabbix_template_copy_fail.yaml mediante Configuration → Templates → Import.

Elementos UserParameter proporcionados:

La plantilla de Copy Fail incluye un disparador HIGH en status=1 y WARNING en status=2. No se requiere sudo — todos los archivos que leen ambos scripts son legibles por cualquier usuario.

Nagios / Icinga / NRPE

root@kitploit:~
install -m 755 cve-2026-31431-check.sh /usr/lib/nagios/plugins/
install -m 755 cve-2026-43284-check.sh /usr/lib/nagios/plugins/

# NRPE — add to /etc/nagios/nrpe.cfg:
command[check_copy_fail]=/usr/lib/nagios/plugins/cve-2026-31431-check.sh --nagios
command[check_dirty_frag]=/usr/lib/nagios/plugins/cve-2026-43284-check.sh --nagios

# CheckMK local checks:
echo '#!/bin/bash
OUT=$(/usr/lib/nagios/plugins/cve-2026-31431-check.sh --nagios); RC=$?
echo "$RC CVE-2026-31431 - $OUT"' > /usr/lib/check_mk_agent/local/copy_fail

echo '#!/bin/bash
OUT=$(/usr/lib/nagios/plugins/cve-2026-43284-check.sh --nagios); RC=$?
echo "$RC CVE-2026-43284 - $OUT"' > /usr/lib/check_mk_agent/local/dirty_frag

chmod +x /usr/lib/check_mk_agent/local/copy_fail \
         /usr/lib/check_mk_agent/local/dirty_frag

auditd — detección de comportamiento / en tiempo de ejecución

Detecta un intento de exploit activo en curso, complementando ambas sondas estáticas.

root@kitploit:~
cp copy_fail_auditd.rules /etc/audit/rules.d/
augenrules --load

# Watch for unexpected AF_ALG callers:
ausearch -k copy_fail_af_alg --interpret | \
    grep -v -E 'cryptsetup|veritysetup|systemd-crypt|kcapi'

Los stubs de reglas de Wazuh (nivel 13 / 15) están incrustados en los comentarios del archivo .rules.

Wazuh SCA

root@kitploit:~
cp wazuh_sca/copy_fail_sca.yml /var/ossec/etc/shared/default/
/var/ossec/bin/agent_control -r -a

Resultados: Security → SCA → Filter by policy cve_2026_31431_copy_fail

Ansible — escaneo de flota

root@kitploit:~
ansible-playbook -i inventory/hosts ansible/copy_fall_scan.yml
# Limit to a subset:
ansible-playbook -i inventory/hosts ansible/copy_fall_scan.yml --limit webservers

Escribe el JSON por host + summary.txt en /tmp/copy_fail_results/ en el controlador. El play termina con un código distinto de cero si algún host es VULNERABLE.


Rastreadores de seguridad de los proveedores


Referencias

Copy Fail

  • Informe original de Xint/Theori
  • Aviso CERT-EU 2026-005
  • NVD CVE-2026-31431
  • Aviso de seguridad de Ubuntu USN-8226-1
  • Aviso de Rocky Linux 2026-05-11
  • SUSE responde a Copy Fail

Dirty Frag

  • Informe técnico de Dirty Frag (copy.fail)
  • NVD CVE-2026-43284
  • Aviso de AlmaLinux 2026-05-07
  • Sysdig TRT — análisis de detección de Dirty Frag
  • Blog de seguridad de Microsoft — ataque activo
  • Blog de Wiz — Dirty Frag
Descargar herramienta
Copy FailDirty Frag
CVECVE-2026-31431CVE-2026-43284 + CVE-2026-43500
Módulo(s)algif_aeadesp4, esp6, rxrpc
IntroducidoAgo 2017 (kernel 4.14)Ene 2017 / Jun 2023
MitigaciónLista negra de modprobe.d para algif_aeadLista negra de modprobe.d para esp4/esp6/rxrpc
Script de sondeocve-2026-31431-check.shcve-2026-43284-check.sh
DistribuciónParcheado enAviso
RHEL / Rocky / Alma 8.10kernel-4.18.0-553.123.1.el8_10Rocky 2026-05-11
RHEL / Rocky / Alma 9.7kernel-5.14.0-611.54.1.el9_7same
RHEL / Rocky / Alma 10.1kernel-6.12.0-124.55.1.el10_1same
Debian 11 (bullseye)linux 5.10.251-3DLA-4560-1
Debian 12 (bookworm)linux 6.1.170-1DSA-6243-1
Debian 13 (trixie)linux 6.12.85-1DSA-6238-1
Ubuntu 22.04 / 24.04Aún no hay kernel parcheado — mitigación con kmod mediante USN-8226-1USN-8226-1
SLES 12 SP5kernel-default 4.12.14-122.299.1SUSE-SU-2026:1669-1
SLES 15 SP5kernel-default 5.14.21-150500.55.144.1SUSE-SU-2026:1670-1
SLES 15 SP6kernel-default 6.4.0-150600.23.92.1SUSE-SU-2026:1671-1
SLES 15 SP7kernel-default 6.4.0-150700.53.40.1SUSE-SU-2026:1669-1
SLES 16.0kernel-default 6.12.0-160000.29.1Aviso de SUSE
Pendiente
Pendiente
Debian / Ubuntu / SLESPendientePendiente
ClaveTipoSignificado
copy_fail.statusint0=seguro · 1=vulnerable · 2=desconocido
copy_fail.detailstrVeredicto de Copy Fail en formato legible
dirty_frag.statusint0=seguro · 1=vulnerable · 2=desconocido
dirty_frag.detailstrVeredicto de Dirty Frag en formato legible
DistribuciónCopy FailDirty Frag
Ubuntuubuntu.com/security/CVE-2026-31431ubuntu.com/security/CVE-2026-43284
Debiansecurity-tracker…CVE-2026-31431security-tracker…CVE-2026-43284
RHEL / Alma / Rockyaccess.redhat.com…CVE-2026-31431access.redhat.com…CVE-2026-43284
Amazon Linuxalas.aws…CVE-2026-31431alas.aws…CVE-2026-43284
SUSEsuse.com…CVE-2026-31431suse.com…CVE-2026-43284