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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
copy-fail-cve-2026-31431 — Go 版 CVE-2026-31431 的 Copy Fail PoC,该漏洞为 Linux 内核 authencesn 缺陷,可通过 AF_ALG 和 splice 向页缓存写入 4 字节。包含多架构构建流水线和详细技术文档。 | Kitploit
工具/GitHubGitHub/erdemozgen/copy-fail-cve-2026-31431
漏洞利用框架漏洞分析漏洞利用学习与教育二进制利用
GitHuberdemozgen/copy-fail-cve-2026-31431

copy-fail-cve-2026-31431

Go 版 CVE-2026-31431 的 Copy Fail PoC,该漏洞为 Linux 内核 authencesn 缺陷,可通过 AF_ALG 和 splice 向页缓存写入 4 字节。包含多架构构建流水线和详细技术文档。

查看仓库
网站
8295个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Copy Fail - CVE-2026-31431

本仓库提供了公开 Copy Fail PoC 的 Go 移植版本,以及一个可复现的多架构 Linux 二进制构建流水线。

Copy Fail(CVE-2026-31431)是 Linux 内核中 authencesn 的一个逻辑缺陷,它能够通过 AF_ALG + splice() 实现对页缓存数据确定性的 4 字节写入。

负责任使用

请仅在您被明确授权测试的环境中使用本项目。请勿针对您不拥有或未经书面许可评估的系统运行此 PoC。

快速测试(无需构建)

如果您想立即测试而无需从源码构建,请下载发布二进制文件并运行:

wget https://github.com/ErdemOzgen/copy-fail-cve-2026-31431/releases/download/v1.0.1/copy-fail-cve-2026-31431_linux_amd64
chmod +x copy-fail-cve-2026-31431_linux_amd64
./copy-fail-cve-2026-31431_linux_amd64

对于其他架构,请从 GitHub Releases 页面下载对应的资源:

https://github.com/ErdemOzgen/copy-fail-cve-2026-31431/releases

目录

  • 快速测试(无需构建)
  • 构建前置条件
  • 本地构建
  • 使用方法
  • 故障排除
  • 概述
  • 为何重要
  • 根本原因
  • authencesn 中的触发路径
  • 漏洞如何变得可达
  • 高层利用流程
  • 修复摘要
  • 修复措施
  • 披露时间线
  • 发现方式
  • 仓库结构
  • GitHub Actions
  • 已测试发行版
  • 参考资料

构建前置条件

  • Go 1.23+
  • GNU Make

本地构建

构建所有 Linux 目标:

make clean build-linux

构建并生成校验和:

make clean checksums

dist/ 中的输出二进制文件:

  • copy-fail-cve-2026-31431_linux_amd64
  • copy-fail-cve-2026-31431_linux_arm64
  • copy-fail-cve-2026-31431_linux_386
  • copy-fail-cve-2026-31431_linux_armv7
  • SHA256SUMS

使用方法

默认运行:

./copy-fail-cve-2026-31431_linux_amd64

使用自定义目标路径:

./copy-fail-cve-2026-31431_linux_amd64 -target /path/to/binary

禁用运行后 su 执行:

./copy-fail-cve-2026-31431_linux_amd64 -spawn-su=false

打印构建元数据:

./copy-fail-cve-2026-31431_linux_amd64 -version

故障排除

如果在偏移量 0 处执行失败并出现类似错误:

error: copy chunk at offset 0: splice(pipe->AF_ALG): software caused connection abort

内核很可能拒绝了易受攻击的 AEAD 就地路径(例如,因为主机已针对 CVE-2026-31431 打了补丁,或者 algif_aead 已被缓解/禁用)。

快速检查:

uname -r
grep -E "algif_aead|authencesn" /proc/modules

在已修复的系统上,此 PoC 预计会失败。

概述

根据公开披露,易受攻击的路径允许非特权本地用户在特定条件下,对可读文件的页缓存内容实施 4 字节写入原语。

重要的操作特性是,内存中的页缓存副本在运行时可能与磁盘上的字节产生偏差,这使得仅依赖磁盘级完整性检查的团队难以进行影响分析。

为何重要

Copy Fail 之所以引人注目,是因为它被报告为:

  • 确定性(所描述的触发路径中无需竞争条件)。
  • 在测试中可跨主要 Linux 发行版移植。
  • 实现紧凑,无需外部载荷构建器依赖。
  • 由于共享页缓存行为,其影响范围超出单进程。

根本原因

从高层来看,该问题位于三种机制的交叉点:

  1. AF_ALG AEAD 请求处理。
  2. splice() 页缓存支持的数据移动。
  3. authencesn 解密临时缓冲区行为。

在易受攻击的设计中,页缓存支持的段可以被链接到一种请求形态中,该形态在算法处理期间会接收到写入,这违反了只有预期目标区域才会被修改的关键假设。

authencesn 中的触发路径

在已记录的路径中,authencesn 在 ESN 布局处理周围使用目标侧临时缓冲区操作,并在超出预期解密输出契约的偏移量处执行写入。

当与就地 AEAD 设置和链式 scatterlist 引用结合时,该写入可以落入攻击者选定区域的页缓存支持内存中。

漏洞如何变得可达

该披露描述了多提交的演变过程:

  • authencesn 行为源于早期的集成历史。
  • AF_ALG AEAD 支持通过 splice() 交互引入了用户空间可达性。
  • 后来 algif_aead 中的就地优化以某种方式结合了源和目标流程,使得这一交叉点变得可利用。

关键教训是组合风险:单独合理的更改在组合后可能变得不安全。

高层利用流程

公开的撰写和 PoC 描述了以下序列:

  1. 打开并配置一个用于 authencesn(hmac(sha256),cbc(aes)) 的 AF_ALG AEAD 套接字。
  2. 提供精心构造的元数据和分块数据。
  3. 使用 splice() 将页缓存支持的文件数据路由到请求路径。
  4. 触发解密处理并以受控的 4 字节步长重复。

本仓库的 Go 实现镜像了该公开 PoC 的逻辑,用于在授权环境中进行研究和验证。

修复摘要

已报告的修复将 algif_aead 中易受攻击的就地 AEAD 操作恢复为异地行为。

概念上:

  • 修复前:对于此路径,源和目标可能合并为一个可写链。
  • 修复后:源和目标保持分离,防止页缓存支持的源段在此流程中被用作可写目标区域。

修复措施

  • 将内核修补到包含上游修复的版本。
  • 在整个机群和镜像中推出供应商内核包更新。
  • 考虑临时加固控制措施(例如,在操作可行的情况下对 AF_ALG 使用实施策略限制)。
  • 使用运行时检查验证修复效果,而不仅仅是磁盘校验和工作流。

披露时间线

基于公开撰写:

日期事件
2026-03-23报告提交给 Linux 内核安全团队
2026-03-24初步确认
2026-03-25补丁讨论/审查
2026-04-01修复提交到主线
2026-04-22分配 CVE-2026-31431
2026-04-29公开披露

发现方式

已发表的研究归功于人工引导、AI 辅助的子系统分析,重点关注用户空间可达的加密代码路径以及 splice() 下的 scatterlist/页来源。

仓库结构

  • main.go:Go PoC 移植版本。
  • Makefile:确定性的多架构 Linux 构建目标。
  • .github/workflows/build.yml:CI 构建和发布工件工作流。

GitHub Actions

工作流文件:.github/workflows/build.yml

触发器:

  • 拉取请求
  • 推送到 main
  • 匹配 v* 的标签推送
  • 手动 workflow_dispatch

行为:

  1. 通过 make clean checksums 构建所有 Linux 二进制文件并生成校验和。
  2. 上传以 ref + commit SHA 命名的 CI 工件。
  3. 自动为匹配 v* 的标签发布发布资源。

建议的发布流程:

git tag v1.0.0
git push origin v1.0.0

已测试发行版

发行版内核版本
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.16.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default

参考资料

  • 原始公开文章:https://xint.io/blog/copy-fail-linux-distributions
  • CVE 条目:CVE-2026-31431
下载工具