Linux Kernel “Copy Fail” 本地提权漏洞(CVE-2026-31431 / CNVD-2026-19044)
2026 年 4 月 29 日,安全研究人员公开披露 Linux 内核高危漏洞 CVE-2026-31431,代号 Copy Fail;4 月 30 日被国家信息安全漏洞共享平台(CNVD)收录Linux Kernel本地权限提升漏洞,编号 CNVD-2026-19044。
漏洞编号:CVE-2026-31431/CNVD-2026-19044
漏洞描述:Linux Kernel “Copy Fail” 本地提权漏洞源于 Linux 内核加密子系统 algif_aead 模块中的一处逻辑缺陷。2017 年的一项优化引入了 in-place 操作,使得关联数据(AD)处理时源和目标的内存映射不一致,导致内核页缓存页面被混入可写散列表。攻击者利用 AF_ALG 加密接口和 splice() 系统调用组合,可向任意可读文件(如setuid程序/usr/bin/su)的页缓存写入 4 字节受控数据。由于页缓存由同一内核上所有进程共享,篡改 setuid 程序后再次执行即可获得 root 权限。
漏洞等级:高危
利用条件:攻击者需具备本地普通用户权限即可发起攻击
统信安全应急响应中心(USRC)
统信安全应急响应中心已发布Linux Kernel “Copy Fail” 本地提权漏洞相关系统版本修复方式以及软件包信息。
安全公告地址
https://src.uniontech.com/,根据漏洞编号“CVE-2026-31431”搜索漏洞信息。
统信安全应急响应中心 USRC 是统信软件官方安全枢纽,负责统信 UOS 全系列产品漏洞接收、研判修复、安全公告发布及应急响应,联动生态构建国产操作系统安全防护闭环。
Linux Kernel “Copy Fail” 本地提权漏洞修复
1,统信服务器操作系统V20 1070 E版
在线补丁安装
(1)升级前软件包
rpm -qa "*kernel*" "perf" "python*-perf" "bgftool"
(2)在线修复
通过 dnf 升级cve软件包
dnf upgrade-minimal --cve CVE-2026-31431
或升级系统内核版本
(3)重启系统生效
离线补丁安装
离线补丁下载地址
https://src.uniontech.com/
根据漏洞编号“CVE-2026-31431”搜索漏洞信息,选择对应的服务器操作系统版本,点击“详情”,选择对应的“系统子版本”和“系统架构”,下载并安装补丁包。
(1)创建目录
(2)解压软件包
tar -xvf /root/1070_kernel-4.19_amd64.tar.gz -C /mnt/security/
(3)rpm 升级软件包
cd /mnt/security/ rpm -Uvh *.rpm
(4)验证
rpm -qa "*kernel*" "perf" "python*-perf" "bgftool"
(5)重启系统生效
创建离线仓库
(1)创建目录
(2)解压软件包
tar -xvf /root/1070_kernel-4.19_amd64.tar.gz -C /mnt/security/
(3)安装createrepo
(4)镜像仓索引元数据创建
createrepo /mnt/security/
(5)创建yum 文件
vim /etc/yum.repos.d/security.repo[security]name=securitybaseurl=file:///mnt/securitygpgcheck=0
(6)本地仓库更新软件包
dnf update kernel kernel-devel kernel-btf perf python3-perf bpftool
(7)重启系统生效
2,openEuler 服务器操作系统 openEuler-24.03-LTS-SP3
openEuler 安全中心
https://www.openeuler.openatom.cn/zh/security/security-bulletins/
根据漏洞编号“CVE-2026-31431”搜索漏洞信息,选择对应的服务器操作系统版本,选择对应的“系统版本”和“系统架构”,下载更新的软件包。
openEuler-24.03-LTS-SP3 更新的软件包信息
在线补丁安装
(1)升级前软件包
(2)升级软件包
下载软件包
dnf update kernel bpftool perf python3-perf -y --downloadonly --downloaddir=/opt/soft
(3)安装软件包
dnf update kernel bpftool perf python3-perf
(4)重启系统生效
修复验证
执行 uname -r 命令查看当前系统内核版本,若大于等于 SRC 上的修复版本,则漏洞已修复,否则漏洞未修复。
统信服务器操作系统V20 1070 E版
openEuler-24.03-LTS-SP3
临时规避措施
检查内核配置是否启用
grep CONFIG_CRYPTO_USER_API_AEAD /boot/config-$(uname -r)
统信服务器操作系统V20 1070 E版
openEuler-24.03-LTS-SP3
CONFIG_CRYPTO_USER_API_AEAD=y 编译进内核
(1)执行命令禁用algif_aead初始化,并重启系统生效
grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"
(2)重启系统生效
(3)检查内核启动参数是否包含禁用配置
cat /proc/cmdline | grep algif_aead cat /boot/grub2/grub.cfg |grep algif_aead
CONFIG_CRYPTO_USER_API_AEAD=m编译成模块
(1)卸载当前模块并永久禁用加载
sudo rmmod algif_aead 2>/dev/nullecho "blacklist algif_aead" > /etc/modprobe.d/algif_aead.conf
(2)lsmod检查模块是否加载
内核漏洞复现:临时编译 Python环境
由于国产操作系统(如统信服务器操作系统 UOS V20、openEuler 22.03 LTS)默认搭载的 Python 3.8 / 3.9 版本中未包含 os.splice() 函数(该函数自 Python 3.10 版本才正式引入),为了运行测试 Linux 内核 “Copy Fail” 本地提权漏洞的 copy_fail_exp.py 脚本验证漏洞是否修复成功,需要临时编译安装更高版本的 Python。在操作过程中,需采用 “不覆盖系统默认 Python” 的方式,以避免影响系统原有环境。
(1)安装依赖