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

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

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 字节。包含多架构构建流水线和详细技术文档。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Copy Fail - CVE-2026-31431

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

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

负责任使用

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

快速测试(无需构建)

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

root@kitploit:~
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 目标:

    root@kitploit:~
    make clean build-linux
    

    构建并生成校验和:

    root@kitploit:~
    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

    使用方法

    默认运行:

    root@kitploit:~
    ./copy-fail-cve-2026-31431_linux_amd64
    

    使用自定义目标路径:

    root@kitploit:~
    ./copy-fail-cve-2026-31431_linux_amd64 -target /path/to/binary
    

    禁用运行后 su 执行:

    root@kitploit:~
    ./copy-fail-cve-2026-31431_linux_amd64 -spawn-su=false
    

    打印构建元数据:

    root@kitploit:~
    ./copy-fail-cve-2026-31431_linux_amd64 -version
    

    故障排除

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

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

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

    快速检查:

    root@kitploit:~
    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* 的标签发布发布资源。

    建议的发布流程:

    root@kitploit:~
    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
    下载工具