Crihexe/copy-fail-tiny-elf-CVE-2026-31431
GitHub: Crihexe/copy-fail-tiny-elf-CVE-2026-31431
针对 CVE-2026-31431 的最小化无 libc Linux x86_64 ELF 概念验证构建,用于在授权环境中复现 Copy Fail 漏洞。
Stars: 38 | Forks: 7
# 复制失败的 Tiny ELF - CVE-2026-31431
针对 Copy Fail 漏洞(CVE-2026-31431)的最小 492 字节 Linux x86_64 no-libc ELF 概念验证构建。
本代码仓库包含一个经过体积优化的 ELF 构建版本,衍生自公开的 Copy Fail 研究与 PoC。**本构建仅限于在授权环境中进行受控测试、研究和复现。**
## 参考
- 技术分析文章: https://copy.fail/
- 上游 PoC 仓库: https://github.com/theori-io/copy-fail-CVE-2026-31431
- NVD 条目: https://nvd.nist.gov/vuln/detail/CVE-2026-31431
## 要求
- Linux x86_64
- gcc
- ld
- strip
在 Debian/Ubuntu 上:
```
sudo apt install build-essential binutils
```
## Nix 环境
本仓库包含锁定的 `shell.nix` 和 `.envrc` 文件。
使用 `nix-shell`:
```
nix-shell
```
使用 `direnv`:
```
direnv allow
```
这会提供此处所使用的可复现工具链:
```
gcc 15.2.1
GNU ld / strip from llvmPackages_19.bintools
python3
```
## 构建
```
make
```
如果您正在使用 Nix 或 `direnv`,`make` 将自动使用来自当前 shell 的工具链。
## 快速 VM 测试
您也可以在一个快速的 `Ubuntu Server 24.04 LTS` 虚拟机中尝试此漏洞利用
```
cd test-vm
./quick-test.sh
```
## 检查大小
```
make size
```
## 清理
```
make clean
```
## 已测试的工具链
```
gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)
GNU ld (GNU Binutils for Ubuntu) 2.42
GNU strip (GNU Binutils for Ubuntu) 2.42
```
可复现的更小体积构建:
```
gcc 15.2.1
GNU ld 2.46
GNU strip with --strip-section-headers
```
最终大小会因 GCC、binutils 和 strip 的具体实现而异。
标签:Binutils, Copy Fail, CVE-2026-31431, direnv, ELF, Exploit, GCC, Maven, Nix, PoC, x86_64, 二进制瘦身, 无libc, 暴力破解, 极小ELF, 汇编, 漏洞复现, 漏洞验证, 网络安全, 虚拟机测试, 隐私保护