0xdeadbeefnetwork/Copy_Fail2-Electric_Boogaloo
GitHub: 0xdeadbeefnetwork/Copy_Fail2-Electric_Boogaloo
利用Linux内核xfrm ESP子系统MSG_SPLICE_PAGES零拷贝路径缺陷实现非特权本地提权的PoC利用工具。
Stars: 273 | Forks: 27
# Copy Fail 2: Electric Boogaloo
通过 xfrm ESP-in-UDP MSG_SPLICE_PAGES 无 COW 快速路径实现的非特权 Linux LPE(本地提权)。将页缓存写入任何可读文件。用 `sick::0:0:...:/:/bin/bash` 覆盖 `/etc/passwd` 中的 `nologin` 行,并 `su` 切换到该用户。与 Copy Fail (CVE-2026-31431) 属于同一类型,但发生在不同的子系统。
Bug: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=f4c50a4034e62ab75f1d5cdd191dd5f9c77fdff4
## 构建
```
sudo apt install -y libssl-dev gcc
gcc -O2 -Wall copyfail2.c -o copyfail2 -lcrypto
gcc -O2 -Wall aa-rootns.c -o aa-rootns
```
## 运行
```
./run.sh # install + drop into root shell
./run.sh --clean # revert /etc/passwd via the same primitive
```
向 `/etc/passwd` 中添加无密码的 uid-0 用户 `sick`,然后执行 `exec su - sick`。
PAM 的 `nullok` 会静默接受空密码——无需任何输入。`sick` 用户的信息会保留在 `/etc/passwd` 中——再次运行会直接回到 root 状态。`--clean` 的状态被存储在 `/var/tmp/.cf2.state` 中。
无需 sudo。esp4 / xfrm_user / xfrm_algo 通过 userns 的 netlink 路径自动加载。
## 测试结果
| 发行版 | 内核 | 结果 |
|--------------------|----------------------|------------------|
| Ubuntu 22.04 LTS | 5.15.0-176-generic | 不受此漏洞影响* |
| Ubuntu 24.04 LTS | 6.8.0-110-generic | root |
| Debian 13 | 6.12.74 | root |
| Arch | 6.19.11-arch1-1 | root |
| Fedora 43 | 6.19.14-200.fc43 | root |
| Ubuntu 26.04 LTS | 7.0.0-15-generic | root |
## IPv6
`esp6_input` 中存在相同的 Bug,且未被 v4 的修复补丁 `f4c50a4034` 所覆盖。`ipv6/` 目录中提供了 PoC:`ipv6/run.sh` 和 `ipv6/copyfail2v6.c`。使用 `::1` 回环地址和 `ip -6 xfrm`。ESP 数据包被填充至 >= 40 字节,以绕过 `xfrm6_input.c:124` 的大小限制检查。
## 致谢
Hyunwoo Kim (imv4bel) 和 Kuan-Ting Chen 负责报告、测试,并编写了上游的修复补丁。
Steffen Klassert:IPsec 维护者,将修复补丁提交到了 netdev/net.git。
Brad Spengler (@spendergrsec / grsecurity):在其他任何人阅读该提交之前,就将其归类为 copyfail 类型。
Theori / Xint:原创 Copy Fail (CVE-2026-31431)。
标签:0day挖掘, CSV导出, CVE-2026-31431, ESP-in-UDP, /etc/passwd 修改, IPv6, Linux LPE, MSG_SPLICE_PAGES, Netlink, Page-Cache, PoC, PowerShell, Web报告查看器, xfrm, xfrm_user, 内核安全, 内核漏洞, 写入原语, 安全漏洞, 客户端加密, 提权脚本, 无特权提权, 暴力破解, 本地提权, 网络子系统