Linux内核 CopyFail 高危漏洞复现及修复方案


Linux Kernel 本地权限提升漏洞 CVE-2026-31431,代号 Copy Fail,该漏洞漏洞源于 Linux 内核加密子系统 algif_aead 模块中的一处逻辑缺陷。通过利用 AF_ALG 套接字与splice()系统调用组合,可向任意可读文件的页缓存(page cache)写入4字节受控数据,实现本地提权至 root。该漏洞影响 2017 年至补丁发布前构建的几乎所有 Linux 内核版本,EXP 已公开,极易利用。

漏洞基本信息
漏洞原因:
该漏洞源于 Linux 内核加密子系统 algif_aead 模块中的一处逻辑缺陷。2017 年引入的一项 in-place 优化,由于源数据与目标数据来自不同的内存映射,in-place 操作会将 page-cache 页面错误地放入可写目的地的 scatterlist 中,未授权的攻击者可通过 splice() 将 SUID 二进制文件的页缓存页面与 AF_ALG socket 加密操作串联,实现对任意页缓存页面的可控 4 字节写入,从而篡改已加载到内存中的 SUID 程序代码,最终获取 root 权限。
漏洞影响范围:
2017 年至补丁发布前构建的几乎所有 Linux 内核版本。

高风险场景:

漏洞复现
漏洞利用流程:


修复方案:
各厂商已发布内核安全更新,立即升级内核到修复版本。
Ubuntu/Debian 参考修复方案:
#1.更新软件源
sudo apt update
#2.查看当前内核版本
uname -r
#3.完整升级(包含内核)
sudo apt full-upgrade -y
#4.重启系统
sudo reboot
RHEL/CentOS参考修复方案:
#1.更新系统
sudo dnf update kernel -y
#2.重启系统
sudo reboot
SUSE参考修复方案:
#1.更新内核
sudo zypper update kernel -y
#2.重启系统
sudo reboot
麒麟系统参考修复方案
#1.更新软件源
对于使用yum的系统,在终端执行以下命令更新软件源:
sudo yum clean all && sudo yum makecache
对于使用dnf的系统,在终端执行以下命令更新软件源:
sudo dnf clean all && sudo dnf makecache
#2.升级内核
$sudo yum update kernel*
或者:
$sudo dnf update kernel*
#3.查看默认启动项
使用grep命令快速查看当前GRUB配置文件中有哪些可用的内核选项:
sudo grep ^menuentry /boot/efi/EFI/kylin/grub.cfg | cut -d "'" -f2
在终端输入如下命令,强制指定启动项。设置升级后的内核版本为默认启动项(请用具体需要升级的内核menuentry 启动项名称替代命令行中引号内的内容)。
sudo grub2-set-default "Kylin Linux Advanced Server xxxx"
#4.重启系统
sudo reboot
参考链接:https://www.kylinos.cn/about/news/2051829003803791362.html
统信参考解决方案
服务器 D 版
#1.命令更新内核及相关组件
sudo apt update && sudo apt upgrade linux-image-$(uname -r)
#2.重启系统
sudo reboot
其他服务器版本
#1.通过yum升级至安全内核版本
sudo yum update-minimal --cve CVE-2026-31431
或直接升级内核包:
sudo yum update kernel
#2.重启系统
sudo reboot
参考链接:
https://www.uniontech.com/news-info/2903.html
凝思安全操作系统参考修复方案:
V6.0.80系统升级方法:
#1.检查内核版本
V6.0.80系统升级前请先通过uname -a 命令确认当前内核版本是否为4.19.90,如果不是则不需要升级。
#2.下载V6.0.80系统的内核升级包和MD5文件
将下载好的软件包拷贝到需要升级的系统中,在终端执行md5sum -c MD5.txt,确认所有结果都为“通过”。
#3.按照顺序安装内核软件包
安装内核包
dpkg -i linux-kbuild-4.19_4.19.90-26.042.vlx90.v80u7sn_amd64.deb
dpkg -i linux-headers-4.19.0-12-common-linx-security_4.19.90-26.042.vlx90.v80u7sn_all.deb
dpkg -i linux-headers-4.19.0-12-linx-security-amd64_4.19.90-26.042.vlx90.v80u7sn_amd64.deb
dpkg -i linux-image-4.19.0-12-linx-security-amd64_4.19.90-26.042.vlx90.v80u7sn_amd64.deb
dpkg -i linux-libc-dev_4.19.90-26.042.vlx90.v80u7sn_amd64.deb
dpkg -i linux-compiler-gcc-4.9-x86_4.19.90-26.042.vlx90.v80u7sn_amd64.deb
安装驱动包
dpkg -i update-drivers-4.19.90_1.0-90lx80u9_amd64.deb
安装安全模块
modprobe -r linx_sec
dpkg -P linx-security-module-4.19.90
dpkg -i linx-security-module-4.19.90_3.23-linx_amd64.deb
V6.0.100系统升级方法:
#1.下载V6.0.100系统对应架构的内核升级包和MD5文件。
#2.将下载好的软件包拷贝到需要升级的系统中,在终端执行md5sum -c MD5.txt,确认所有结果都为“通过”。
#3.按照以下顺序安装内核软件包(以x86_64为例,其他架构安装对应架构的软件包即可):先安装 linux-kbuild-4.19_4.19.90-26.042.vlx90.v100u7sn_amd64.deb,安装完成后再安装其它内核软件包。
dpkg -i linux-kbuild-4.19_4.19.90-26.042.vlx90.v100u7sn_amd64.deb
dpkg -i linux-*
安装驱动包
dpkg -P update-drivers-4.19.0
dpkg -i update-drivers-4.19.90_1.0-90lx100u5_amd64.deb
安装安全模块
modprobe -r linx_sec
dpkg -P linx-security-module
dpkg -i linx-security-module-4.19.90_3.23-linx_amd64.deb
V6.0.99系统升级方法:
#1.下载V6.0.99系统对应架构的内核升级包和MD5文件。
#2.将下载好的软件包拷贝到需要升级的系统中,在终端执行md5sum -c MD5.txt,确认所有结果都为“通过”。
#3.按照以下顺序安装内核软件包(以x86_64为例,其他架构安装安装对应架构的软件包即可):
安装内核软件包
yum localinstall python3-perf-4.19.90-26.042.vlx89.1.v99_2003.task.27678.04301710.x86_64.rpm -y
yum localinstall bpftool-4.19.90-26.042.vlx89.1.v99_2003.task.27678.04301710.x86_64.rpm -y
yum localinstall kernel-tools-4.19.90-26.042.vlx89.1.v99_2003.task.27678.04301710.x86_64.rpm -y
yum localinstall kernel-devel-4.19.90-26.042.vlx89.1.v99_2003.task.27678.04301710.x86_64.rpm -y
yum localinstall kernel-4.19.90-26.042.vlx89.1.v99_2003.task.27678.04301710.x86_64.rpm -y
更新grub配置
grub2-mkconfig -o /boot/grub2/grub.cfg
参考链接:https://www.linx-info.com/#/ServiceAndSupport/NoticeDetails?id=Linx-SA-20260505


京公安备11010802034101号

