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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-31431-CopyFail — CVE-2026-31431(Copy Fail)的概念验证漏洞利用程序,一种通过 algif_aead 页缓存损坏实现的 Linux 内核本地权限提升(LPE),附带检测、实验环境及缓解措施指南。 | Kitploit
工具/GitHubGitHub/0xfuffm3/cve-2026-31431-copyfail
权限提升漏洞分析漏洞利用渗透测试学习与教育容器逃逸二进制利用实验室与实践
GitHub0xfuffm3/cve-2026-31431-copyfail

CVE-2026-31431-CopyFail

CVE-2026-31431(Copy Fail)的概念验证漏洞利用程序,一种通过 algif_aead 页缓存损坏实现的 Linux 内核本地权限提升(LPE),附带检测、实验环境及缓解措施指南。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
root@kitploit:~
                     ██████╗ ██████╗ ██████╗ ██╗   ██╗    ███████╗ █████╗ ██╗██╗
                    ██╔════╝██╔═══██╗██╔══██╗╚██╗ ██╔╝    ██╔════╝██╔══██╗██║██║
                    ██║     ██║   ██║██████╔╝ ╚████╔╝     █████╗  ███████║██║██║
                    ██║     ██║   ██║██╔═══╝   ╚██╔╝      ██╔══╝  ██╔══██║██║██║
                         ╚██████╗╚██████╔╝██║        ██║       ██║     ██║  ██║██║███████╗
                          ╚═════╝ ╚═════╝ ╚═╝        ╚═╝       ╚═╝     ╚═╝  ╚═╝╚═╝╚══════╝

CVE-2026-31431 — "Copy Fail"

Linux内核本地权限提升漏洞(通过 algif_aead 页缓存破坏)


CVE CVSS Kernel License Status


⚠️ 仅限授权使用 — 本仓库严格供渗透测试人员、安全研究人员及防御者在合法授权下使用。滥用属刑事犯罪。


📖 目录


🔍 什么是Copy Fail?

Copy Fail 是一个本地权限提升(LPE) 漏洞,于2026年4月29日披露,影响自2017年以来几乎所有主流Linux发行版。

root@kitploit:~
非特权用户  ──►  AF_ALG + splice()  ──►  4字节页缓存写入  ──►  ROOT

关键信息一览

为何危险

  • 🕵️ 隐蔽 — 修改仅存在于页缓存中,磁盘上的文件从未改变。标准磁盘取证无法检测。
  • ⚡ 可靠 — 确定性逻辑缺陷,而非竞态条件。在不同环境中利用一致。
  • 🌐 普遍 — 影响Ubuntu、RHEL、Amazon Linux、SUSE、Debian — 自2017年以来的每个主要发行版。
  • ☸️ 云/K8s影响 — 可在Kubernetes工作负载和CI/CD运行器中促成容器逃逸。
  • 🤖 AI发现 — 由Xint Code的AI系统在一小时扫描时间和单个操作员提示下发现。

🔬 技术深度剖析

根本原因

该漏洞源于2017年引入的有缺陷的就地优化(提交 72548b093ee3),位于Linux内核用户空间加密API(AF_ALG)的 algif_aead 模块中。

root@kitploit:~
AF_ALG (用户空间加密API)
└── algif_aead 模块
    └── authencesn 模板  ◄── 存在漏洞
        └── 就地优化 (2017)
            └── req->src == req->dst  ◄── 来自 splice() 的页面被链接到可写dst分散列表

攻击流程

root@kitploit:~
步骤1:打开 AF_ALG AEAD socket
        socket(AF_ALG, SOCK_SEQPACKET, 0)

步骤2:发送引用目标文件的 splice() 页面
        (特权二进制文件的页缓存页面,例如 /usr/bin/sudo)

步骤3:触发 authencesn 草稿写入
        authencesn 将 dst 缓冲区用作草稿区 →
        在合法输出区域之外写入4个受控字节

步骤4:目标文件的页缓存条目现在被破坏
        (磁盘文件未动 — 仅内存副本被修改)

步骤5:执行被修改的二进制文件 → ROOT

为何是页缓存?

Linux内核的页缓存备份文件的内存副本。当文件被读取时,其页面会被缓存。splice() 系统调用可以直接引用这些缓存页面。通过将页缓存页面送入AF_ALG AEAD分散列表,authencesn草稿写入会落在那些缓存页面内部,从而有效地修补任何可读文件的内存副本——包括像 sudo、pkexec 或 passwd 这样的特权二进制文件。

修复措施

上游补丁回退了2017年有缺陷的优化:

root@kitploit:~
# 在提交 a664bf3d603d 中修复
git show a664bf3d603d

🖥️ 受影响系统

Linux内核版本

发行版矩阵


📁 仓库结构

root@kitploit:~
CVE-2026-31431-CopyFail/
│
├── 📄 README.md                          ← 您当前所在位置
├── 📄 LICENSE                            ← 研究/教育许可证
├── 📄 DISCLAIMER.md                      ← 法律与道德使用政策
├── 📄 CHANGELOG.md                       ← 版本历史
│
├── 📂 docs/
│   ├── vulnerability-analysis.md         ← 深度剖析:根本原因与机制
│   ├── exploitation-walkthrough.md       ← 分步方法论
│   ├── affected-kernels.md               ← 完整内核/发行版版本矩阵
│   ├── detection.md                      ← 防御者、Tenable、Wazuh 覆盖范围
│   └── references.md                     ← 所有CVE、博客、公告
│
├── 📂 exploit/
│   ├── README.md                         ← 使用说明、前提条件、测试过的发行版
│   ├── copyfail.py                       ← 参考PoC(教育用途)
│   ├── trigger.c                         ← AF_ALG + splice() C触发器
│   └── variants/
│       ├── ubuntu.py                     ← Ubuntu特定变体
│       ├── rhel.py                       ← RHEL/CentOS变体
│       └── amazon_linux.py              ← Amazon Linux变体
│
├── 📂 detection/
│   ├── yara/
│   │   └── copyfail.yar                  ← 检测漏洞利用工件的YARA规则
│   ├── sigma/
│   │   └── copyfail_lpe.yml              ← SIEM/SOC用Sigma规则
│   └── scripts/
│       ├── check_vulnerable.sh           ← 快速内核漏洞检查
│       └── detect_algif_aead.sh         ← 检查模块是否加载/活动
│
├── 📂 mitigation/
│   ├── README.md                         ← 缓解措施概述
│   ├── disable_algif_aead.sh             ← 禁用受影响的内核模块
│   ├── patch-notes.md                    ← 上游补丁详情
│   └── kubernetes-hardening.md          ← K8s / 容器加固
│
├── 📂 lab/
│   ├── Vagrantfile                       ← 可复现的易受攻击虚拟机
│   ├── setup.sh                          ← 实验环境引导脚本
│   └── docker/
│       └── Dockerfile                    ← 易受攻击的Ubuntu容器
│
├── 📂 reports/
│   ├── pentest-report-template.md        ← 面向客户的报告模板
│   └── sample-finding.md                ← 示例发现文档
│
└── 📂 assets/
    ├── demo.gif                          ← (可选)终端演示
    └── diagrams/
        └── page-cache-write.png         ← 攻击流程图

🧪 实验环境搭建

始终在隔离的授权环境中测试。切勿在生产系统上运行漏洞利用。

选项A — Vagrant虚拟机(推荐)

root@kitploit:~
# 克隆仓库
git clone https://github.com/0xFuffM3/CVE-2026-31431-CopyFail.git
cd CVE-2026-31431-CopyFail

# 启动易受攻击的实验环境虚拟机
cd lab/
vagrant up

# SSH进入实验环境
vagrant ssh

# 确认内核版本(应为易受攻击版本)
uname -r

选项B — Docker容器

root@kitploit:~
cd lab/docker/

# 构建易受攻击的容器镜像
docker build -t copyfail-lab .

# 以所需权限运行以进行内核交互
docker run --rm -it --privileged copyfail-lab /bin/bash

检查您的系统是否易受攻击

root@kitploit:~
# 运行快速检查脚本
chmod +x detection/scripts/check_vulnerable.sh
./detection/scripts/check_vulnerable.sh

在易受攻击的系统上的预期输出:

root@kitploit:~
[!] 内核版本: 5.15.0-91-generic
[!] algif_aead 模块: 已加载
[✗] 系统似乎对 CVE-2026-31431 (Copy Fail) 易受攻击
[*] 建议操作:应用内核更新或禁用 algif_aead

在已修补的系统上的预期输出:

root@kitploit:~
[✓] 内核版本: 6.1.132
[✓] 系统似乎已针对 CVE-2026-31431 (Copy Fail) 进行修补

💥 漏洞利用使用

要求: 在易受攻击的系统上拥有非特权用户的本地访问权限。

前提条件

root@kitploit:~
# Python 3.6+
python3 --version

# 必要的内核模块存在
lsmod | grep algif_aead

# 验证目标二进制文件可读
ls -la /usr/bin/sudo

运行PoC

root@kitploit:~
cd exploit/

# 检查当前权限级别
id
# uid=1000(user) gid=1000(user) groups=1000(user)

# 运行 Copy Fail PoC
python3 copyfail.py

# 验证权限提升
id
# uid=0(root) gid=0(root) groups=0(root)

渗透测试工作流程

root@kitploit:~
1. 枚举内核版本
   └─► uname -r / cat /proc/version

2. 检查 algif_aead 是否已加载
   └─► lsmod | grep algif_aead

3. 确认低权限立足点
   └─► id / whoami

4. 执行 Copy Fail PoC
   └─► python3 exploit/copyfail.py

5. 验证root访问权限
   └─► id && cat /etc/shadow

6. 记录证据
   └─► 截图 + 日志记录内核版本、发行版、漏洞利用哈希

7. 应用缓解措施(测试后)
   └─► sudo bash mitigation/disable_algif_aead.sh

8. 包含在渗透测试报告中
   └─► 使用 reports/pentest-report-template.md

🔎 检测

YARA规则

root@kitploit:~
// detection/yara/copyfail.yar
rule CopyFail_CVE_2026_31431 {
    meta:
        description = "检测 Copy Fail (CVE-2026-31431) 漏洞利用工件"
        author      = "0xFuffM3"
        date        = "2026-04-30"
        reference   = "https://copy.fail"
    strings:
        $py1 = "algif_aead" ascii
        $py2 = "AF_ALG" ascii
        $py3 = "splice" ascii
        $py4 = "page_cache" ascii
        $py5 = "authencesn" ascii
    condition:
        3 of them
}

运行YARA扫描:

root@kitploit:~
yara detection/yara/copyfail.yar /tmp/ -r

Sigma规则(SIEM)

root@kitploit:~
# detection/sigma/copyfail_lpe.yml
title: Copy Fail LPE漏洞利用执行 (CVE-2026-31431)
status: stable
logsource:
    category: process_creation
    product: linux
detection:
    selection:
        CommandLine|contains:
            - 'AF_ALG'
            - 'algif_aead'
            - 'authencesn'
    condition: selection
falsepositives:
    - 合法的加密API测试
level: high

快速检测脚本

root@kitploit:~
chmod +x detection/scripts/detect_algif_aead.sh
./detection/scripts/detect_algif_aead.sh

安全工具覆盖范围


🛡️ 缓解措施

选项1 — 应用内核补丁(推荐)

root@kitploit:~
# Ubuntu / Debian
sudo apt-get update && sudo apt-get upgrade linux-image-generic

# RHEL / CentOS
sudo yum update kernel

# Amazon Linux
sudo yum update kernel

# 更新后重启
sudo reboot

选项2 — 禁用 algif_aead 模块(临时方案)

root@kitploit:~
# 运行缓解脚本
chmod +x mitigation/disable_algif_aead.sh
sudo bash mitigation/disable_algif_aead.sh

该脚本执行的操作:

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || echo "[*] 模块当前未加载"
echo "[✓] algif_aead 已禁用。重启以确认持久性。"

选项3 — Kubernetes加固

参见 mitigation/kubernetes-hardening.md 了解:

  • 在Pod安全策略中限制 AF_ALG socket创建
  • 使用Seccomp配置文件阻止 socket(AF_ALG, ...) 系统调用
  • 优先修补Kubernetes节点和CI/CD运行器

📝 渗透测试报告

现成的客户端报告模板位于 reports/pentest-report-template.md。

示例发现总结

root@kitploit:~
发现:    通过 Copy Fail (CVE-2026-31431) 进行本地权限提升
严重性:  高 (CVSS 7.8)
主机:    10.10.10.55 (ubuntu-prod-01)
内核:    5.15.0-91-generic

证据:
  - 非特权shell (uid=1000) 提升至root (uid=0)
  - 确认内核模块 algif_aead 已加载
  - 无磁盘工件 — 仅页缓存

建议:
  1. 立即应用供应商内核补丁
  2. 临时方案:禁用 algif_aead 模块
  3. 检查Kubernetes节点和CI/CD运行器

⚖️ 法律与道德

在使用本仓库中的任何内容之前,请阅读此声明。

本仓库仅供合法的安全研究、授权渗透测试和防御性安全目的发布。

  • ✅ 允许: 在您拥有或已获得明确书面授权进行测试的系统上进行测试
  • ✅ 允许: 在隔离的实验环境中进行安全研究
  • ✅ 允许: 防御性使用 — 检测、修补、加固
  • ❌ 禁止: 在未经书面授权的系统上进行测试
  • ❌ 禁止: 针对生产系统部署漏洞利用
  • ❌ 禁止: 任何违反当地、国家或国际法律的使用行为

未经授权使用本材料可能违反计算机欺诈与滥用法案(CFAA)、欧盟指令2013/40/EU、印度IT法案2000以及您所在司法管辖区的同等法律。

作者不对滥用承担任何责任。完整法律声明请参见 DISCLAIMER.md。


📚 参考资料


🤝 贡献

欢迎安全研究人员贡献:

  1. Fork本仓库
  2. 创建特性分支:git checkout -b feat/your-contribution
  3. 提交您的更改:git commit -m "添加:X的检测规则"
  4. 推送并创建Pull Request

请遵守负责任的披露规范。请勿包含针对已修补系统的武器化、可用于生产的漏洞利用代码。


为安全社区制作 — 请负责任地使用。

关注

下载工具
#章节描述
1什么是Copy Fail?漏洞概述
2技术深度剖析根本原因分析
3受影响系统发行版与内核矩阵
4仓库结构文件布局
5实验环境搭建安全复现
6漏洞利用使用渗透测试工作流程
7检测YARA、Sigma、脚本
8缓解措施补丁与加固
9渗透测试报告报告模板
10法律与道德免责声明
11参考资料CVE、公告、博客
属性详情
CVE IDCVE-2026-31431
别名Copy Fail
CVSS v3.17.8(高危)
攻击向量本地
所需权限低(任意非特权用户)
用户交互无
发现者Xint Code (Theori)
披露时间2026年4月29日
漏洞利用大小732字节(Python PoC)
补丁状态✅ 可用 — 回退提交 a664bf3d603d
内核分支受影响?修复版本
4.9.x (LTS)✅ 是4.9.340+
5.4.x (LTS)✅ 是5.4.295+
5.10.x (LTS)✅ 是5.10.239+
5.15.x (LTS)✅ 是5.15.185+
6.1.x (LTS)✅ 是6.1.132+
6.6.x (LTS)✅ 是6.6.83+
6.12.x (LTS)✅ 是6.12.19+
< 4.9 (2017年之前)❌ 否不适用 — 优化不存在
发行版受影响版本已修补?公告
Ubuntu< 26.04 (所有版本)✅ 已修补USN
Ubuntu 26.04 (Resolute)❌ 不受影响——
RHEL / CentOS7, 8, 9✅ 已修补RHSA-2026
Amazon Linux2, 2023✅ 已修补ALAS
SUSE / openSUSE所有受影响版本✅ 已修补SUSE-SU
DebianBullseye, Bookworm✅ 已修补DSA
CloudLinux8, 9✅ 已修补公告
工具检测支持
Microsoft Defender (MDVM)✅ 是
Tenable Nessus✅ 是
Qualys✅ 是
Wazuh✅ 通过自定义Sigma规则
Palo Alto Cortex XDR✅ 是
CrowdStrike Falcon✅ 是
来源链接
原始披露(Xint/Theori)copy.fail
Xint Code技术文章xint.io/blog/copy-fail
NVD条目nvd.nist.gov
微软安全博客microsoft.com/security/blog
Ubuntu公告ubuntu.com/blog
CERT-EU公告cert.europa.eu
Tenable常见问题tenable.com/blog
Palo Alto Unit 42unit42.paloaltonetworks.com
CloudLinux公告blog.cloudlinux.com
Bugcrowd分析bugcrowd.com/blog
Linux内核补丁kernel.org — 提交 a664bf3d603d