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 — Puerto de Go del PoC Copy Fail para CVE-2026-31431, una falla de authencesn del kernel de Linux que permite una escritura de 4 bytes en la caché de páginas mediante AF_ALG y splice. Incluye canalización de compilación multiarquitectura y documentación técnica detallada. | Kitploit
Herramientas/GitHubGitHub/erdemozgen/copy-fail-cve-2026-31431
Frameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónExplotación de Binarios
GitHuberdemozgen/copy-fail-cve-2026-31431

copy-fail-cve-2026-31431

Puerto de Go del PoC Copy Fail para CVE-2026-31431, una falla de authencesn del kernel de Linux que permite una escritura de 4 bytes en la caché de páginas mediante AF_ALG y splice. Incluye canalización de compilación multiarquitectura y documentación técnica detallada.

Ver RepositorioSitio web
8hace 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

Copy Fail - CVE-2026-31431

Este repositorio proporciona un port en Go del PoC público de Copy Fail y un pipeline de compilación reproducible para binarios Linux de múltiples arquitecturas.

Copy Fail (CVE-2026-31431) es una falla lógica del kernel de Linux en authencesn que permite una escritura determinista de 4 bytes en datos de page cache referenciados a través de AF_ALG + splice().

Uso Responsable

Utilice este proyecto únicamente en entornos donde esté explícitamente autorizado para realizar pruebas. No ejecute este PoC contra sistemas que no posea o para los cuales no tenga permiso por escrito para evaluar.

Prueba Rápida (Sin Compilación)

Si desea probar de inmediato sin compilar desde el código fuente, descargue un binario de release y ejecútelo:

root@kitploit:~
wget https://github.com/ErdemOzgen/copy-fail-cve-2026-31431/releases/download/v1.0.1/copy-fail-cve-2026-31431_linux_amd64
chmod +x copy-fail-cve-2026-31431_linux_amd64
./copy-fail-cve-2026-31431_linux_amd64

Para otras arquitecturas, descargue el asset correspondiente desde la página de Releases de GitHub:

https://github.com/ErdemOzgen/copy-fail-cve-2026-31431/releases

Contenido

  • Prueba Rápida (Sin Compilación)
  • Prerrequisitos de Compilación
  • Compilación Local
  • Uso
  • Solución de Problemas
  • Resumen
  • Por Qué Es Importante
  • Causa Raíz
  • Ruta de Disparo en authencesn
  • Cómo el Bug Se Volvió Alcanzable
  • Flujo de Explotación de Alto Nivel
  • Resumen de la Corrección
  • Remediación
  • Cronología de Divulgación
  • Cómo Fue Encontrado
  • Estructura del Repositorio
  • GitHub Actions
  • Distribuciones Probadas
  • Referencias

Prerrequisitos de Compilación

  • Go 1.23+
  • GNU Make

Compilación Local

Compilar todos los targets Linux:

root@kitploit:~
make clean build-linux

Compilar y generar checksums:

root@kitploit:~
make clean checksums

Binarios de salida en dist/:

  • copy-fail-cve-2026-31431_linux_amd64
  • copy-fail-cve-2026-31431_linux_arm64
  • copy-fail-cve-2026-31431_linux_386
  • copy-fail-cve-2026-31431_linux_armv7
  • SHA256SUMS

Uso

Ejecución por defecto:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64

Usar una ruta de target personalizada:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -target /path/to/binary

Deshabilitar la ejecución de su posterior:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -spawn-su=false

Imprimir metadatos de compilación:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -version

Solución de Problemas

Si la ejecución falla en el offset 0 con un error similar a:

root@kitploit:~
error: copy chunk at offset 0: splice(pipe->AF_ALG): software caused connection abort

es probable que el kernel haya rechazado la ruta vulnerable AEAD in-place (por ejemplo, porque el host está parcheado para CVE-2026-31431 o algif_aead está mitigado/deshabilitado).

Verificaciones rápidas:

root@kitploit:~
uname -r
grep -E "algif_aead|authencesn" /proc/modules

En sistemas remediados, se espera que este PoC falle.

Resumen

Según la divulgación pública, la ruta vulnerable permite que un usuario local sin privilegios influya en una primitiva de escritura de 4 bytes dentro del contenido de page cache de archivos legibles bajo condiciones específicas.

La propiedad operativa importante es que la copia en memoria del page cache puede divergir de los bytes en disco durante el tiempo de ejecución, lo que puede hacer que el análisis de impacto no sea trivial para equipos que dependen únicamente de verificaciones de integridad a nivel de disco.

Por Qué Es Importante

Copy Fail es notable porque fue reportado como:

  • Determinista (sin requisito de condición de carrera en la ruta de disparo descrita).
  • Portable entre las principales distribuciones de Linux en las pruebas.
  • Compacto en su implementación, sin dependencia de un constructor de payload externo.
  • Relevante más allá del alcance de un solo proceso debido al comportamiento compartido del page cache.

Causa Raíz

A alto nivel, el problema se encuentra en la intersección de tres mecánicas:

  1. Manejo de solicitudes AEAD de AF_ALG.
  2. Movimiento de datos respaldados por page cache mediante splice().
  3. Comportamiento de scratch de descifrado de authencesn.

En el diseño vulnerable, los segmentos respaldados por page cache pueden vincularse en una forma de solicitud que posteriormente recibe escrituras durante el procesamiento del algoritmo, violando una suposición clave de que solo las regiones de destino previstas son modificadas.

Ruta de Disparo en authencesn

En la ruta documentada, authencesn utiliza operaciones de scratch en el lado de destino alrededor del manejo del diseño ESN y realiza una escritura en un offset más allá del contrato esperado de salida de descifrado.

Cuando se combina con la configuración AEAD in-place y las referencias encadenadas de scatterlist, esta escritura puede aterrizar en memoria respaldada por page cache para regiones seleccionadas por el atacante.

Cómo el Bug Se Volvió Alcanzable

La divulgación describe una evolución de múltiples commits:

  • El comportamiento de authencesn se originó en la historia de integración anterior.
  • El soporte AEAD de AF_ALG introdujo alcanzabilidad desde userspace con interacción de splice().
  • Una optimización in-place posterior en algif_aead combinó el flujo de origen y destino de una manera que hizo explotable esta intersección.

La lección clave es el riesgo composicional: cambios individualmente razonables pueden volverse inseguros en combinación.

Flujo de Explotación de Alto Nivel

El write-up público y el PoC describen esta secuencia:

  1. Abrir y configurar un socket AEAD de AF_ALG para authencesn(hmac(sha256),cbc(aes)).
  2. Proporcionar metadatos manipulados y datos fragmentados.
  3. Usar splice() para enrutar datos de archivos respaldados por page cache a través de la ruta de solicitud.
  4. Disparar el manejo de descifrado y repetir en pasos controlados de 4 bytes.

La implementación en Go de este repositorio refleja la lógica de ese PoC público para investigación y validación en entornos autorizados.

Resumen de la Corrección

La corrección reportada revierte la operación AEAD in-place vulnerable en algif_aead al comportamiento out-of-place.

Conceptualmente:

  • Antes de la corrección: origen y destino podían colapsar en una sola cadena escribible para esta ruta.
  • Después de la corrección: origen y destino permanecen separados, evitando que los segmentos de origen respaldados por page cache se usen como regiones de destino escribibles en este flujo.

Remediación

  • Parchear kernels a versiones que contengan la corrección upstream.
  • Implementar actualizaciones de paquetes de kernel del proveedor en toda la flota e imágenes.
  • Considerar controles de endurecimiento temporales (por ejemplo, restricciones de política sobre el uso de AF_ALG donde sea operativamente factible).
  • Validar la remediación con verificaciones en tiempo de ejecución, no solo con flujos de checksum de disco.

Cronología de Divulgación

Según el write-up público:

FechaEvento
2026-03-23Informe enviado al equipo de seguridad del kernel de Linux
2026-03-24Acuse de recibo inicial
2026-03-25Discusión/revisión del parche
2026-04-01Corrección confirmada en mainline
2026-04-22CVE-2026-31431 asignado
2026-04-29Divulgación pública

Cómo Fue Encontrado

La investigación publicada acredita análisis de subsistemas asistido por IA y guiado por humanos, centrado en rutas de código criptográfico alcanzables desde userspace y en la procedencia de scatterlist/página bajo splice().

Estructura del Repositorio

  • main.go: Port del PoC en Go.
  • Makefile: targets de compilación Linux multi arquitectura deterministas.
  • .github/workflows/build.yml: flujo de trabajo de CI para compilación y assets de release.

GitHub Actions

Archivo de flujo de trabajo: .github/workflows/build.yml

Disparadores:

  • Pull requests
  • Push a main
  • Push de tag que coincida con v*
  • workflow_dispatch manual

Comportamiento:

  1. Compila todos los binarios Linux con checksums mediante make clean checksums.
  2. Sube artefactos de CI nombrados con ref + commit SHA.
  3. Publica automáticamente los assets de release para tags que coincidan con v*.

Flujo de release sugerido:

root@kitploit:~
git tag v1.0.0
git push origin v1.0.0

Distribuciones Probadas

DistribuciónVersión del Kernel
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.16.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default

Referencias

  • Artículo público original: https://xint.io/blog/copy-fail-linux-distributions
  • Entrada CVE: CVE-2026-31431
Descargar herramienta