Board logo

标题: Linux Kernel 本地权限提升漏洞风险通告(CVE-2026-31431) [打印本页]

作者: linda    时间: 2026-5-7 16:22     标题: Linux Kernel 本地权限提升漏洞风险通告(CVE-2026-31431)

尊敬的阿里云用户,您好!

阿里云安全监测到,互联网上披露了Linux Kernel 存在本地权限提升漏洞,漏洞编号CVE-2026-31431。可导致本地低权限攻击者利用 AF_ALG 加密接口与 splice() 系统调用,实现向任意可读文件的页缓存中写入受控的4字节数据,进而通过篡改 setuid 二进制文件获得 root 权限等危害。

容器场景下官方提示也可能受影响,建议也重点关注。为避免您的业务受影响,建议您及时开展安全自查,如在受影响范围,请您及时进行更新修复。



漏洞详情

Linux Kernel 是全球最广泛使用的开源操作系统内核,它是 Linux 系统的核心组件,负责管理硬件资源、进程调度、内存管理、文件系统和网络功能等底层任务。

据描述,在 Linux 内核的 authencesn 加密模板与 algif_aead 模块的组合实现中,由于 AF_ALG 套接字的 AEAD 解密路径在 2017 年引入了一个就地(in-place)操作优化(提交 72548b093ee3),将 splice() 传递过来的目标文件页缓存页面直接链入可写的输出散列表(scatterlist)。而 authencesn 算法在实现 IPsec 扩展序列号(ESN)支持时,为了重排认证数据中的序列号字节,会在解密过程中将接收缓冲区偏移 assoclen + cryptlen 位置作为临时存储空间写入 4 字节数据。当 AF_ALG 通过 recvmsg() 触发解密操作时,该写入会跨越接收缓冲区边界,直接覆盖链在后面的页缓存页面,从而实现对任意已打开的可读文件的页缓存进行受控的 4 字节篡改,最终导致本地低权限攻击者可通过篡改系统上任意可读文件(如 /usr/bin/su 等 setuid 程序)的页缓存内容,无需竞争条件或重试即可直接获得 root 权限,且该写入不会触发磁盘脏页回写,可实现持久化提权等危害。

目前该漏洞的漏洞细节、POC已公开。



风险等级

高风险



漏洞风险

本地攻击者利用该漏洞篡改系统上任意可读文件(如 /usr/bin/su 等 setuid 程序)的页缓存内容,直接获得 root 权限,且该写入不会触发磁盘脏页回写,可实现持久化提权等危害。



目前已知受影响操作系统及版本:

Ubuntu 25.10

Ubuntu 24.04 LTS

Ubuntu 22.04 LTS

Ubuntu 20.04 LTS

Ubuntu 18.04 LTS

Amazon Linux 2023

Red Hat Enterprise

Linux 10

Red Hat Enterprise

Linux 9

Red Hat Enterprise

Linux 8

SUSE 16

安全版本 commit >= a664bf3d603d



排查方法

1,检查内核版本,uname -r

2,检查内核配置是否启用(推荐)

grep CONFIG_CRYPTO_USER_API_AEAD /boot/config-$(uname -r)

注:会出现以下三种情况:

  CONFIG_CRYPTO_USER_API_AEAD=n 彻底关闭,绝对不受影响

CONFIG_CRYPTO_USER_API_AEAD=y 静态编译进内核,Ismod 查不到,但存在漏洞可被利用(例如:Centos 8.5)

CONFIG_CRYPTO_USER_API_AEAD=m 模块方式,Ismod 可查,加载就有风险

3,检查模块是否已加载受影响模块,lsmod | grep algif。

4,检查 AF_ALG socket 是否可创建,python3 -c "import socket; socket.socket(38,5,0); print('VULNERABLE')"



修复建议

1,官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,升级至安全版https://git.kernel.org/stable/c/a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5

2,针对 Ubuntu、Debian、RHEL/CentOS、SUSE 等用户,官方暂未发布安全更新,请及时关注官方安全公告:

Ubuntu:https://ubuntu.com/security/CVE-2026-31431

Debian:https://security-tracker.debian.org/tracker/CVE-2026-31431

RHEL/CentOS:https://access.redhat.com/security/cve/cve-2026-31431

SUSE:https://www.suse.com/security/cve/CVE-2026-31431.html



缓解措施:

1,禁用内核模块(该方式可能不会对所有linux有效,且执行该命令可能产生未知的风险,建议在与生产环境相同的测试环境中测试没有影响之后使用。)

echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf

2,卸载已加载模块 rmmod algif_aead 2>/dev/null(针对静态编译进内核的系统(例如:Centos 8.5),此缓解措施可能无法生效,建议更新官方内核补丁。)

3,容器场景下可通过 seccomp 禁止 AF_ALG socket 创建(family=38)来缓解:"syscalls": [{ "names": ["socket"], "action": "SCMP_ACT_ERRNO", "args": [{"index": 0, "value": 38, "op": "SCMP_CMP_EQ"}]}]



【备注】:建议您在执行操作前做好数据备份工作,避免出现业务受损情况。





漏洞来源参考

https://copy.fail/ https://xint.io/blog/copy-fail-linux-distributions

https://github.com/theori-io/copy-fail-CVE-2026-31431/

https://nvd.nist.gov/vuln/detail/CVE-2026-31431



我们会关注后续进展,请随时关注官方公告。



阿里云安全

2026.4.30


原文:https://www.aliyun.com/notice/detail?notice-id=118231


=============
# echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif_aead.conf

# modprobe algif_aead
modprobe: ERROR: ../libkmod/libkmod-module.c:1084 command_do() Error running install command '/bin/false' for module algif_aead: retcode 1
modprobe: ERROR: could not insert 'algif_aead': Invalid argument




欢迎光临 中神通公司交流论坛 (http://trustcomputing.com.cn/bbs/) Powered by Discuz! 6.0.0