编辑
2026-05-03
Linux知识
00

目录

一、情况概述
二、风险详情
三、风险危害
四、受影响范围
五、排查方法
六、处置与修复建议

一、情况概述

近期,Linux内核中被披露存在一个高危的本地权限提升漏洞(漏洞代号:Copy Fail,CVE编号:CVE-2026-31431)。该漏洞由Xint Code研究团队发现,是一个隐蔽且极易触发的内核逻辑缺陷。攻击者利用该漏洞可以实现稳定、确定性的提权操作。目前,该漏洞的完整利用代码(PoC)已经公开,受影响时间跨度长达近十年(自2017年起),且覆盖所有主流Linux发行版本。云服务器、容器宿主机及多租户环境面临极高的安全风险。

二、风险详情

  1. 漏洞成因

该漏洞源于Linux内核加密子系统中 authencesn 模块的逻辑缺陷。当攻击者结合使用 AF_ALG 套接字和 splice() 系统调用时,会将目标文件的页缓存(Page Cache)引用暴露在可写的散列表(Scatterlist)中,从而允许无特权的本地用户向系统内任意可读文件(如 setuid 的 su 二进制文件)的页缓存中进行精确的4字节越界写入。 2. 漏洞特征

  • 无条件触发(直线逻辑缺陷)

与Dirty Cow(脏牛)等依赖条件竞争(Race Condition)的漏洞不同,Copy Fail漏洞不需要竞争窗口,运行稳定,不会导致系统崩溃。

  • 极度隐蔽(绕过文件完整性校验)

该漏洞仅修改内存中的页缓存,内核不会将其标记为“脏页”(Dirty)并回写到磁盘。因此,磁盘上的文件保持不变。

  • 极易利用(单文件脚本)

利用代码仅为732字节的Python标准库脚本,无需编译即可在各类架构与发行版上通用。

三、风险危害

  1. 本地权限提升

任何无特权的本地普通用户均可利用该漏洞篡改高权限进程(如 /usr/bin/su),直接获取系统最高级别的 root 权限。

  1. 容器逃逸与跨租户攻击

由于操作系统的页缓存在宿主机与所有容器之间共享,容器内的攻击者一旦掌握适当的系统调用权限,即可篡改宿主机 的页缓存,实现容器逃逸并接管整个Kubernetes节点或宿主机资源。

  1. 高危场景威胁

对多用户共享主机、开发机、CI/CD执行器(如GitHub Actions、GitLab Runner等沙盒环境)以及Serverless等多 租户云服务造成严重的跨越隔离界限的威胁。

四、受影响范围

该漏洞影响内核版本在 commit 72548b093ee3 (linux/commit/72548b093ee3)(引入,2017年8月9日)至 commit a664bf3d603d (linux/commit/a664bf3d603d)(修复补丁,2026年3月31日)之间的所有Linux系统。默认配置下启用或可按需加载 algif_aead 模块的系统均在受影响之列。

已知受影响的主流产品及版本包括但不限于:

Ubuntu 24.04 LTS 及以下版本 Amazon Linux 2023 及以下版本 RedHat Enterprise Linux (RHEL) 8 / 9 / 10 及以下版本 SUSE 16 及以下版本 Debian / Arch / Fedora / Rocky / Alma / Oracle / OpenEuler 等同期内核版本

不受影响的版本:

  • 内核主线 7.0 及以上稳定版
  • 6.18.22 及以上稳定版
  • 6.19.12 及以上

截至撰稿时间2026年4月30日14:30,仍在长期支持中的受影响内核版本:

  • 6.12 所有版本
  • 6.6 所有版本
  • 6.1 所有版本
  • 5.15 所有版本
  • 5.10 所有版本

五、排查方法

  1. 内核版本自查

通过命令行执行 uname -r 查看当前内核版本,并对照官方修复的内核版本号判断是否处于受影响区间。

  1. 内核模块排查

检查系统是否加载或允许加载 algif_aead 模块,可执行命令:lsmod | grep algif_aead 或 lsof | grep AF_ALG。

六、处置与修复建议

当更新可用时,立即升级内核:各主要Linux发行版厂商正在发布内核更新补丁。建议受影响用户在补丁可用后,尽快通过系统的包管理器(如 apt、yum、dnf)将内核更新至最新版本并重启系统。

js
# Ubuntu / Debian apt update && apt upgrade linux-image-$(uname -r) # RHEL / CentOS / Rocky / Alma dnf update kernel # Amazon Linux yum update kernel # SUSE zypper update kernel-default

本文作者:曹永皓

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!