在 Kali Linux 上复现了无文件 LPE CVE‑2026‑31431(“Copy Fail”),然后构建了 auditd、Sigma 和 YARA 检测规则,以捕捉这种不留磁盘痕迹的隐秘内核漏洞利用。
本仓库记录了 CVE-2026-31431(“Copy Fail”) 的端到端复现、检测工程和事件响应,这是一个影响 4.14 至 7.0-rc 内核的严重 Linux 内核本地权限提升漏洞。
Copy Fail 是一个逻辑缺陷,而非内存破坏。它具有确定性,几乎影响自 2017 年以来发布的所有 Linux 发行版,并且完全无文件——传统的文件完整性监控(AIDE、Tripwire)无法发现它。一个可用的概念验证仅需 732 字节的 Python 代码。
| 组件 | 详情 |
|---|---|
| 虚拟机管理程序 | VirtualBox |
| 目标虚拟机 | Kali Linux 2026.1 |
| 内核 | 6.18.12+kali-amd64 |
| 漏洞利用 PoC | theori-io/copy-fail-CVE-2026-31431 |
| 检测 | auditd、Sigma、YARA |
实验首先确认目标运行的是存在漏洞的内核。
Kali Linux 2026.1 版本发布及内核详情。
uname -r 的输出显示存在漏洞的内核 6.18.12+kali-amd64。
该漏洞利用需要 algif_aead 内核模块和 authencesn 加密模板。
模块已加载
lsmod 和 modinfo 确认 algif_aead 可用;/proc/crypto 显示存在漏洞的 authencesn 模板。
该 PoC 使用 os.splice,需要 Python 3.10+。我们验证了解释器版本。
Python 版本 已安装 Python 3.12,准备就绪。
在运行完整漏洞利用之前,一个安全的检查器确认系统存在漏洞。
检查器报告“可能存在漏洞”,为漏洞利用扫清了道路。
创建一个非特权 testuser 账户,以模拟没有特殊权限的攻击者。
id 显示 UID 1001,确认非 root 访问权限。
从非特权账户克隆并执行官方的 Theori PoC。
成功克隆了漏洞利用仓库。
漏洞利用执行
该 Python 漏洞利用覆盖页缓存并引爆被破坏的 /usr/bin/su 二进制文件。
whoami 和 id 的输出证明已完全提升至 root 权限。
该漏洞利用仅破坏内存中的页缓存。磁盘上的 /usr/bin/su 保留其原始校验和。
SHA256 匹配
即使在漏洞利用之后,sha256sum 仍与原始软件包哈希匹配,确认没有磁盘修改。
Copy Fail 无法被文件完整性监控检测到。相反,我们关注它使用的系统调用级原语。
我们部署了自定义 auditd 规则,在以下情况触发:
AF_ALG 套接字创建(family 38)splice() 系统调用使用
所有自定义规则均已生效,并通过 auditctl -l 验证。
第二次运行该漏洞利用程序后,我们会看到针对所用系统调用的精确告警:
ausearch 显示来自 testuser 进程的 AF_ALG 套接字创建事件。
ausearch 显示来自同一 PID 的 splice() 事件,具有强相关性。
Sigma 规则将 auditd 的发现转换为厂商中立的 SIEM 格式。
Sigma YAML 规则,用于检测 AF_ALG 套接字创建和 splice() 调用。
YARA 规则有助于识别磁盘上的 Copy Fail 漏洞利用代码。
YARA 规则匹配 PoC 中发现的 authencesn 字符串、套接字常量和 splice() 引用。
| 层级 | 可见内容 | 状态 |
|---|---|---|
| auditd | AF_ALG 套接字 + splice 系统调用 | ✅ 已部署 |
| Sigma | 通过 SIEM 检测系统调用模式 | ✅ 规则就绪 |
| YARA | 磁盘上的 PoC 代码 | ✅ 规则就绪 |
| FIM (AIDE/Tripwire) | 文件变更 | ❌ 盲区 – 未发生磁盘写入 |
完整的事件响应报告位于 reports/incident-copy-fail.md。其中包括:
即时缓解措施(无需重启):
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead