wgnet/wg.copyfail.patch
GitHub: wgnet/wg.copyfail.patch
针对 CVE-2026-31431 的 eBPF 缓解方案,通过过滤或终止 AF_ALG socket 创建来防止本地提权和容器逃逸,解决了内核模块内建无法禁用的场景。
Stars: 17 | Forks: 3
# CVE-2026-31431 又名 [Copy.Fail](https://copy.fail) eBPF 应对方案
## 为什么这很重要
此 CVE 允许授权用户更改任何可读文件的缓存副本,从而导致本地权限提升(又名本地 root 提权)、沙箱/容器逃逸及其他问题。
它通过创建由 algif\* 内核模块提供的 **AF\_ALG** socket 来实现。
当前众所周知的应对方案建议禁用 **algif\_aead** 模块,但如果该模块是内建(built-in)的,例如在 Fedora Linux、Oracle Linux 及其他基于 RHEL 的系统中,就无法这样做。
此外,一些上游目前仍未包含该补丁。
这意味着在您修补内核之前,您的系统将一直处于受漏洞影响的状态。
## 解决方案
此软件包提供了两个 eBPF 程序:
- **ebpf-alg-socket-filter**,通过 eBPF/LSM 内核机制过滤 AF\_ALG socket 的创建
- **ebpf-alg-socket-killer**,杀死(kill)任何创建 AF\_ALG socket 的程序
如果您在内核中启用了 eBPF LSM 模块,我建议使用第一个。您可以通过调用以下命令进行检查
```
cat /sys/kernel/security/lsm
```
并检查其中是否存在 `bpf`。
如果您没有 eBPF LSM 模块,请使用第二个程序,它相对更加“粗暴”,但同样能起到保护作用。
## 构建
- 安装 clang、kernel-headers、libbpf-devel 和 bpftool
- 从您的内核头文件中复制 vmlinux.h
- 运行 `build.sh build`
## 运行
- 运行 `apply.sh load` 进行加载
- 运行 `apply.sh unload` 进行卸载
- 运行 `apply.sh status` 检查状态
标签:0day挖掘, AF_ALG, algif_aead, Copy.Fail, CVE-2026-31431, Docker镜像, Fedora, Linux内核, LPE, LSM, RHEL, Web报告查看器, 内核安全, 协议分析, 客户端加密, 容器逃逸, 应用安全, 开源安全工具, 本地提权, 权限提升, 沙箱逃逸, 漏洞缓解, 系统防护, 网络安全, 逆向工程平台, 隐私保护