当前位置:首页>Linux>Linux Kernel “Copy Fail” 本地提权漏洞 修复(统信UOS V20、openEuler)

Linux Kernel “Copy Fail” 本地提权漏洞 修复(统信UOS V20、openEuler)

  • 2026-10-11 08:24:16
Linux Kernel “Copy Fail” 本地提权漏洞 修复(统信UOS V20、openEuler)

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

或升级系统内核版本

sudo dnf update kernel 

(3)重启系统生效

reboot

离线补丁安装

离线补丁下载地址

https://src.uniontech.com/

根据漏洞编号“CVE-2026-31431”搜索漏洞信息,选择对应的服务器操作系统版本,点击“详情”,选择对应的“系统子版本”和“系统架构”,下载并安装补丁包。

(1)创建目录

mkdir -p  /mnt/security/

(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)重启系统生效

reboot

创建离线仓库

(1)创建目录

mkdir -p  /mnt/security/

(2)解压软件包

tar -xvf /root/1070_kernel-4.19_amd64.tar.gz   -C  /mnt/security/

(3)安装createrepo

dnf install 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)重启系统生效

reboot

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)重启系统生效

reboot

修复验证

执行 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:openEuler在维的版本模块已静态编译入内核,会自动加载,lsmod不可查,会受影响。

  • CONFIG_CRYPTO_USER_API_AEAD=m:可通过lsmod检查模块是否加载lsmod | grep algif,若存在则受影响

CONFIG_CRYPTO_USER_API_AEAD=y 编译进内核

(1)执行命令禁用algif_aead初始化,并重启系统生效

grubby  --update-kernel=ALL  --args="initcall_blacklist=algif_aead_init"

(2)重启系统生效

reboot

(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检查模块是否加载

lsmod | grep algif

内核漏洞复现:临时编译 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)安装依赖

dnf install  gcc gcc-c++ make openssl-devel bzip2-devel libffi-devel zlib-devel wget tar -y

(2)下载源码并编译

Python下载地址

https://www.python.org/downloads/

  • --prefix: 指定安装目录;

  • --enable-optimizations:启用优化选项(LTO,PGO等);

  • --with-ssl: 指定了使用SSL库,Python进行安全连接。

(3)解压压缩包

tar -xvf Python-3.11.15.tar.xz -C python-3.11.15/cd python-3.11.15/

(4)编译安装

./configure --prefix=/usr/local/python3.11.15 --enable-optimizationssudo make -j4 && sudo make -j4 install

(5)验证版本

cd /usr/local/python3.11.15/bin./python3 --version

(6)创建普通用户testuser

useradd testuser

(7)执行脚本

/usr/local/python3.11.15/bin/python3  /home/testuser/copy_fail_exp.py

漏洞修复前

漏洞修复后

运行测试 Linux 内核 “Copy Fail” 本地提权漏洞的 copy_fail_exp.py 脚本需要输入root用户密码

最新文章

随机文章