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

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

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

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

工具目录

分类

查看所有分类
Loading categories
cve-2026-31431 — 分析 - POC - 缓解 | Kitploit
工具/GitHubGitHub/sebastian294/cve-2026-31431
权限提升漏洞分析漏洞利用学习与教育二进制利用实验室与实践
GitHubsebastian294/cve-2026-31431

cve-2026-31431

分析 - POC - 缓解

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-31431 — Copy Fail: Linux内核LPE研究实验室

仅用于教育目的。未经明确授权,请勿在系统上使用。


目录

  • 漏洞描述
  • 受影响组件
  • 工作原理
  • 实验室设置 (Docker)
  • PoC — 演示
  • 缓解措施
  • 参考文献

漏洞描述

字段值
CVECVE-2026-31431
别名Copy Fail
CVSS7.8 (高)
类型本地权限提升 (LPE)
受影响内核2017 – 2026 (commit 72548b093ee3 及之后)
上游修复commit a664bf3d603d (2017年的回退)
披露日期2026年4月29日 (Theori / Xint Code)

Copy Fail 是一个逻辑性的确定性漏洞(不需要条件竞争)存在于Linux内核的加密子系统中。它允许无权限用户在系统的任何可读文件的页缓存中写入4个可控字节,包括像su或sudo这样的setuid二进制文件。

为何特别严重?

与先前类似的漏洞相比:


受影响组件

root@kitploit:~
Linux kernel — crypto/authencesn.c
  └── algif_aead (módulo AF_ALG)
        └── in-place optimization (commit 72548b093ee3, 2017)
              └── AEAD scratch write → cruza boundary del scatterlist
                    └── escribe 4 bytes en page cache de archivo externo

受影响发行版: Ubuntu、Debian、RHEL、Amazon Linux、SUSE、Fedora、Arch、AlmaLinux — 任何内核版本≥2017的发行版。


工作原理

根本原因

2017年引入了一项优化,使得req->src和req->dst指向同一个组合的scatterlist。这导致来自splice()的页缓存页面直接链入到可写的目标scatterlist中。

利用链

root@kitploit:~
1. 使用authencesn算法打开AF_ALG socket
2. 使用splice()将目标二进制文件的页缓存页面喂入AF_ALG socket(例如:/usr/bin/sudo)
3. 执行AEAD解密操作
4. authencesn使用目标缓冲区作为草稿空间 → 将seqno_hi(4个可控字节)写入合法输出之外,跨越scatterlist边界
5. 这4个字节落在目标二进制文件的页缓存页面中
6. 磁盘上的文件未改变 → 完整性检查未检测到任何内容
7. 内存中修改的二进制文件执行payload → root

为何隐蔽

写入操作绕过了正常的VFS写入路径。磁盘上的文件保持完整。像sha256sum、aide、tripwire或inotify这样的工具无法检测到更改,因为它们操作的是磁盘上的文件或inode,而不是内存中的页缓存。


实验室设置 (Docker)

本实验室使用易受攻击的内核来演示页缓存损坏。在Docker环境中,完整的权限提升取决于主机的配置(共享内核)。

root@kitploit:~
# Clonar el repo

cd cve-2026-31431

# Construir la imagen vulnerable
docker build -t copyfail-lab -f docker/Dockerfile.vulnerable .

# Ejecutar el lab
docker run --rm -it \
  --cap-add=NET_ADMIN \
  --security-opt seccomp=unconfined \
  copyfail-lab bash

# Dentro del contenedor:
cd /lab
python3 exploit/poc.py

要求

  • Docker ≥ 20.x
  • 主机内核:Ubuntu/Debian上未打补丁的5.x或6.x内核(参见docs/中的表格)
  • 容器中Python 3.10+(用于os.splice)

PoC — 演示

参见 exploit/poc.py 和 exploit/README.md。

PoC 展示了:

  1. 页缓存损坏(可验证)
  2. 向目标文件写入4个可控字节
  3. 完全LPE:取决于主机内核(参见说明)

缓解措施

有关详细说明,请参见 mitigation/README.md。

TL;DR — 立即缓解(无需重启):

root@kitploit:~
# Deshabilitar el módulo afectado
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo modprobe -r algif_aead 2>/dev/null || true

最终修复: 将内核更新到已修补的版本(a664bf3d603d之后)。


仓库结构

root@kitploit:~
cve-2026-31431/
├── README.md                    ← este archivo
├── docs/
│   ├── technical-analysis.md    ← análisis técnico profundo
│   └── affected-kernels.md      ← tabla de versiones afectadas/parcheadas
├── exploit/
│   ├── README.md                ← documentación del PoC
│   └── poc.py                   ← proof of concept (Python 3.10+)
├── mitigation/
│   ├── README.md                ← guía de mitigación
│   ├── disable-algif.conf       ← modprobe config
│   └── check-vulnerable.sh      ← script de detección
├── docker/
│   ├── Dockerfile.vulnerable    ← lab vulnerable
│   └── Dockerfile.patched       ← lab con mitigación aplicada
└── scripts/
    └── setup-lab.sh             ← automatización del lab

披露时间线


参考文献

  • Xint Code — Copy Fail官方分析文章
  • copy.fail — 公告站点
  • 官方GitHub — theori-io/copy-fail-CVE-2026-31431
  • NVD — CVE-2026-31431
  • Ubuntu Security Advisory
  • Microsoft Security Blog
  • Unit 42 — Palo Alto Analysis
  • 上游修复commit a664bf3d603d

下载工具
漏洞类型需要竞争?可移植?利用大小
Dirty Cow (CVE-2016-5195)CoW race是部分~KB
Dirty Pipe (CVE-2022-0847)pipe buffer否受限~KB
Copy Fail (CVE-2026-31431)逻辑否完全732 bytes
日期事件
2017Commit 72548b093ee3 在内核中引入了该漏洞
~2025Theori/Xint Code 开始分析加密子系统
2026年4月28日与发行商协调
2026年4月29日公开披露 + PoC发布
2026年5月1日补丁内核在生产仓库中可用
2026年5月1日添加到CISA KEV目录