Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
block-copyfail — BPF LSM 拦截器,用于 CVE-2026-31431(Copy Fail)——在运行时阻止 authencesn AF_ALG 绑定,无需重启系统 | Kitploit
工具/GitHubGitHub/atgreen/block-copyfail
防御工具动态分析 (沙盒)漏洞分析事件响应
GitHubatgreen/block-copyfail

block-copyfail

BPF LSM 拦截器,用于 CVE-2026-31431(Copy Fail)——在运行时阻止 authencesn AF_ALG 绑定,无需重启系统

查看仓库
7394个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

block-copyfail

概念验证 针对 CVE-2026-31431(“Copy Fail”)的运行时缓解方案——一种通过 algif_aead 中的 authencesn 加密模板实现的 Linux 内核权限提升漏洞。

与模块黑名单不同,此方案无需重启。一个 BPF LSM 程序挂接 socket_bind 并阻止所有 AF_ALG AEAD 绑定——即 Copy Fail 所利用的子系统。这可以防止通过加密模板嵌套(例如 pcrypt(authencesn(...)))实现的绕过。其他 AF_ALG 用法(hash、skcipher)不受影响。

被阻止的尝试会实时记录,包含 PID、进程名和时间戳。

前提条件

  • Linux 内核 5.7+,启用 CONFIG_BPF_LSM=y 并在启动参数中包含 lsm=bpf
  • SBCL 2.0+
  • Whistler(Common Lisp eBPF 编译器)
root@kitploit:~
make doctor   # 检查所有前提条件

快速开始

root@kitploit:~
git clone https://github.com/atgreen/block-copyfail.git
cd block-copyfail
make ubi8-build
sudo ./block-copyfail

阻止器将持续运行,直到您按下 Ctrl-C,然后干净地分离。

本地构建

要在您自己的机器上构建,您需要 SBCL 和 Whistler(Common Lisp eBPF 编译器):

root@kitploit:~
git clone https://github.com/atgreen/whistler.git ~/git/whistler
make build
sudo ./block-copyfail

构建可移植二进制文件(EL8+)

在 UBI8 容器内构建,生成可在 RHEL/CentOS/Alma/Rocky 8+、Fedora、Ubuntu 20.04+ 以及任何使用 glibc 2.28 或更新版本的 Linux 上运行的二进制文件。目标系统上无需 SBCL 或 Whistler——只需复制二进制文件并运行即可。

root@kitploit:~
make ubi8-build
scp block-copyfail root@server:
ssh root@server ./block-copyfail

编译为 ELF 对象

生成可由 bpftool、libbpf 或任何 BPF 加载器加载的标准 .bpf.o 文件:

root@kitploit:~
make elf
sudo mkdir -p /sys/fs/bpf/copyfail
sudo bpftool prog loadall block-copyfail.bpf.o /sys/fs/bpf/copyfail autoattach

分离并移除:

root@kitploit:~
sudo rm -rf /sys/fs/bpf/copyfail

测试

在一个终端中运行阻止器,在另一个终端中触发测试:

root@kitploit:~
python3 trigger-test.py

测试脚本尝试进行 AF_ALG AEAD 绑定(不执行任何漏洞利用)。

测试终端中的预期输出:

root@kitploit:~
BLOCKED: aead/authencesn(hmac(sha256),cbc(aes)) — [Errno 1] Operation not permitted
BLOCKED: aead/gcm(aes) — [Errno 1] Operation not permitted
ALLOWED: hash/sha256
ALLOWED: skcipher/cbc(aes)

阻止器终端中的预期输出:

root@kitploit:~
Copy Fail blocker active — all AF_ALG AEAD binds blocked.
Other AF_ALG usage (hash, skcipher) unaffected.
Watching for blocked attempts. Press Ctrl-C to exit.

TIME                  PID       COMMAND
----                  ---       -------
06:38:12               31337  python3

在未运行阻止器的情况下,测试脚本会对所有四种算法打印 ALLOWED。

工作原理

BPF 程序通过 bpf_probe_read_kernel 从 socket_bind 参数中读取 struct sockaddr_alg 的 7 个字节,检查 salg_family == AF_ALG 和 salg_type == "aead",匹配时返回 -EPERM。这会阻止所有 AEAD 算法绑定,无论模板嵌套如何。事件通过环形缓冲区发送到用户空间。

使用 Whistler 编写,这是一种可直接编译为 eBPF 字节码的 Common Lisp 方言——无需 C、clang 或 LLVM。

许可证

MIT

下载工具