银河麒麟紧Linux 内核CopyFail高危漏洞(CVE-2026-31431)通告

51 阅读3分钟

1. 漏洞简介

  • 漏洞编号: CVE-2026-31431
  • 漏洞威胁等级: 高危
  • 漏洞描述:Linux Kernelalgif_aead 模块(AF_ALG 用户态加密API 的 AEAD 接口)存在本地提权漏洞,该漏洞源于 2017 年引入的一项 in-place 优化(commit 72548b093ee3),由于源数据与目标数据来自不同的内存映射,in-place 操作会将 page-cache 页面错误地放入可写目的地的 scatterlist 中,未授权的本地攻击者可通过 splice()SUID 二进制文件的页缓存页面与 AF_ALG socket 加密操作串联,实现对任意页缓存页面的可控4字节写入,从而篡改已加载到内存中的 SUID 程序代码,最终获取 root 权限。

2. 影响范围

银河麒麟桌面及服务器主要版本均受影响,详情如下:

产品名称影响状态
银河麒麟桌面操作系统V11影响
银河麒麟桌面操作系统V10 SP1影响
银河麒麟高级服务器操作系统V11影响
银河麒麟高级服务器操作系统V10 SP3 2403影响
银河麒麟高级服务器操作系统V10 SP3影响
银河麒麟高级服务器操作系统V10 SP2影响
银河麒麟高级服务器操作系统V10 SP1影响

3. 漏洞修复方案及缓解措施

3.1 修复措施

参考对应版本安全公告进行漏洞修复: support.kylinos.cn/#/security/…

3.2 缓解措施

下载缓解措施脚本附件到本地(kylin_mitigation-cve-2026-31431.sh),并在 脚本所在的路径,执行以下命令:

$sudo bash ./kylin_mitigation-cve-2026-31431.sh

执行脚本后,脚本提示“[总结] CVE-2026-31431 漏洞缓解措施已应用完成”, 代表临时缓解措施已经部署成功。

脚本执行完毕后会提示“是否需要重启系统”。若出现相关提示,请按提示执 行重启操作,临时缓解措施方可生效。

脚本更新下载链接: security-oss.kylinos.cn/Desktop/CVE…

根本修复措施

步骤1:创建UpdateInfo源配置文件

/etc/yum.repos.d/ 目录下新建 kylin-updateinfo.repo 文件:

cat > /etc/yum.repos.d/kylin-updateinfo.repo << EOF
[kylin-updateinfo]
name=Kylin Linux Advanced Server 10 - UpdateInfo
baseurl=https://update.cs2c.com.cn/NS/UpdateInfo/V10SP1/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled=1
EOF

步骤2:清理并重建 yum 缓存

yum clean all && yum makecache

步骤3:验证源是否生效

执行以下命令,能看到 KYSA-202605-1010 的信息,就说明配置成功了:

yum updateinfo list all | grep KYSA-202605-1010

步骤4:重新执行补丁下载/安装命令

# 仅下载不安装(和你之前的操作一致)
yum update --downloadonly --downloaddir=./ --advisory KYSA-202605-1010

# 或者直接安装补丁
yum update --advisory KYSA-202605-1010

步骤5:查看默认启动项

执行如下命令查看当前默认启动项,若已设置为升级后的内核,则跳过后续设置步骤;若未设置,需手动配置。

sudo grub2-editenv list

步骤6:设置默认启动项

  1. 使用grep命令查看GRUB配置文件中所有可用内核选项:
sudo grep ^menuentry /boot/efi/EFI/kylin/grub.cfg | cut -d "'" -f2
  1. 执行命令指定升级后的内核为默认启动项,将引号内内容替换为上一步查询到的对应内核名称:
sudo grub2-set-default "Kylin Linux Advanced Server xxxx"

步骤7:重启并验证

重启服务器后,执行以下命令核验当前内核版本,若输出为升级后的内核版本,则代表内核升级、漏洞修复完成。

uname -r

一键修复脚本

  • repair-cve-KYSA-202605-1010.sh
#!/bin/bash
# 漏洞修复 KYSA-202605-1010 | 带时间戳 + 控制台+日志双输出
LOG_FILE="./repair-KYSA-202605-1010_$(date +%Y%m%d).log"

# 统一日志输出函数:带时间戳,同时输出终端+日志
log() {
    echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}

log "===== 开始执行漏洞修复  $(hostname -I )====="

# 1. 配置更新源
log "配置Kylin更新源"
cat > /etc/yum.repos.d/kylin-updateinfo.repo << EOF
[kylin-updateinfo]
name=Kylin Linux Advanced Server 10 - UpdateInfo
baseurl=https://update.cs2c.com.cn/NS/UpdateInfo/V10SP1/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled=1
EOF
if [ $? -ne 0 ];then
    log "错误:写入repo配置失败,脚本退出"
    exit 1
fi

# 2. 刷新YUM缓存
log "清理并刷新YUM缓存"
yum clean all -y && yum makecache -y
if [ $? -ne 0 ];then
    log "错误:YUM缓存刷新失败,脚本退出"
    exit 1
fi

# 3. 查询并安装补丁
log "查询漏洞补丁 KYSA-202605-1010"
yum updateinfo list all | grep KYSA-202605-1010
log "开始安装补丁"
yum update --advisory KYSA-202605-1010 -y
if [ $? -ne 0 ];then
    log "错误:补丁更新失败,脚本退出"
    exit 1
fi

# 4. 核查启动项与内核
log "核查GRUB默认启动项"
grub2-editenv list

log "核查当前运行内核"
uname -r

log "===== 脚本执行完成 ====="

故障原因

1. UpdateInfo 源官方使用规范

银河麒麟高级服务器系统的 KYSA 安全公告、CVE 漏洞补丁,依赖专属 UpdateInfo 源才能被 YUM 正常识别与调用。 根据官方要求,V10 SP1 版本需配置如下源地址:

https://update.cs2c.com.cn/NS/UpdateInfo/V10SP1/x86_64/

该源为安全补丁的元数据来源,只有完成配置,才能通过 KYSA 编号、CVE 编号定向检索并升级对应漏洞补丁

2. 现场环境核查

  1. 系统版本:银河麒麟高级服务器 V10 SP1(通过内核版本后缀 v2101 判定)
  2. 内核版本:4.19.90-23.8.v2101.ky10.x86_64
  3. YUM 仓库状态:当前系统仅存在 [ks10-adv-updates][ks10-adv-addons] 仓库,未配置 UpdateInfo 源,这是补丁检索失败的直接原因。

3. Nothing to do 报错根因

执行定向补丁下载命令:

yum update --downloadonly --downloaddir=./ --advisory KYSA-202605-1010

终端输出:

No security updates needed, but 520 updates available
Nothing to do.

故障根因: 由于系统未配置 UpdateInfo 源,YUM 无法从官方获取 KYSA-202605-1010 对应的补丁元数据,无法匹配到对应安全补丁包。因此 YUM 判定当前无需要处理的安全更新,命令直接终止执行。