Linux内核提权漏洞CVE-2026-31431排查与修复
732字节提权root,这个内核漏洞让银行运维连夜加班
适合人群:Linux运维、安全运维、容器运维,尤其是银行/金融行业。
用3分钟了解风险,用30秒确认自己的系统是否中招。
一、看到PoC的那一刻,我就知道这次麻烦了
CVE-2026-31431(代号"Copy Fail")是近几年见过最"优雅"的提权漏洞——优雅是反话,懂的都懂。
第一,利用门槛极低。 732字节的Python脚本,不需要编译,不需要精准计时,不需要抢竞态窗口——跑完就是root。这意味着任何一个会用复制粘贴的人,都能拿你服务器的root权限。
第二,成功率接近100%。 不像2016年的Dirty Cow(脏牛),需要靠运气抢时间窗口,利用不稳定。这个漏洞是直线逻辑缺陷,内核自己就把路铺好了。而且它不会导致系统崩溃,攻击者可以反复尝试——你连报错日志都看不到。
第三,隐蔽到离谱。 它只改内存里的页缓存(page cache),不改磁盘文件。内核不标记为"脏页",所以不会回写磁盘。你用 aide 或 tripwire 做完整性校验,全部显示正常——但内存里跑的 /usr/bin/su 早就被替换了。
说直白点:
你的安全检测工具告诉你"一切正常",但系统早就被攻陷了,攻击者可以随时再来一次。
对银行运维来说,这简直是噩梦。
生产环境大量用容器,而页缓存是宿主机和所有容器共享的。容器内一个普通用户(哪怕是被攻击的Web应用),可以篡改宿主机内存里的 /usr/bin/su,直接拿宿主机root。
容器逃逸,一条命令的事。
基本信息:
- 影响范围:2017年以来几乎所有Linux内核(4.14 ~ 6.18.21)
- CVSS评分:7.8(高危)
- PoC公开时间:2026年4月
- 修复内核版本:6.18.22+ 或 7.0+
二、漏洞原理
splice() 是个高效的系统调用,负责在两个文件描述符之间零拷贝搬数据。问题出在它和内核加密接口 AF_ALG 配合使用时,逻辑上有个致命缺陷。
攻击者做的事情很简单:
- 准备一个加了后门的伪造
/usr/bin/su - 通过
AF_ALG接口,让内核把恶意内容读进页缓存 - 内核不把这个页标记为"脏页"——这是关键
- 恶意内容留在内存里,但永远不会写回磁盘
你用 rpm -V 或 debsums 做文件完整性校验,磁盘上的文件100%正常。但实际执行的 /usr/bin/su,内存里的版本早就被替换了。
打个比方:有人偷偷把你家灯开关的线改了,房产证上还是你的名字,查房产证查不出问题,但一按开关——灯不亮,或者亮了不该亮的地方。
三、你的系统受影响吗?
30秒跑一下:
uname -r
- 版本在
4.14 ~ 6.18.21之间 → 受影响 6.18.22+或7.0+→ 安全
记不住版本号也没关系:内核第二位小于18的(比如 5.15.x、6.6.x),基本可以确定中招。
受影响的主流LTS版本
- 6.12、6.6、6.1、5.15、5.10
- 4.14 ~ 5.9 之间的所有版本(这段很多文章都漏掉了,银行老系统尤其要注意)
银行生产环境里还有不少 CentOS 7(3.10内核,不受影响)和 Ubuntu 18.04(4.15内核,受影响),别想当然,逐台确认。
各发行版修复情况(截至2026年5月9日)
| 发行版 | 受影响版本 | 修复状态 | 建议 |
|---|---|---|---|
| Ubuntu 24.04/22.04/20.04 LTS | 全部受影响 | 26.04 才安全,前面版本等推送中 | 关注官方公告 |
| RHEL 8/9/10 | 全部受影响 | 官方公告还没出 | 联系红帽技术支持 |
| Amazon Linux 2023及更早 | 受影响 | 还没修复 | 关注AWS安全公告 |
| SUSE 12 SP5 ~ 16 | 部分版本有补丁 | 部分已修复 | 查询SUSE安全公告 |
| Debian Bookworm/Bullseye | 受影响 | 安全源里还没有修复内核 | 关注Debian安全跟踪 |
| openEuler 24.03 LTS | 受影响 | 官方还在调查 | 关注openEuler公告 |
发行版修复状态随时在变,具体以各发行版官方公告为准。
四、信创系统应对
银行现在大量上信创,这块情况比较特殊。
国产厂商响应速度比想象中快——坏消息是截至2026年5月9日,还有几个主流系统没完全修复。
以下信息仅供参考,生产操作前请务必联系各厂商技术支持。
银河麒麟
| 项目 | 内容 |
|---|---|
| 受影响版本 | 桌面 V10、V11;服务器 V10、V11 |
| 官方进展 | 4月30日发布修复公告,国产厂商中响应最快 |
| 修复方式 | 联网环境系统更新;内网环境下载官方deb包 |
| 临时缓解 | 官方提供一键缓解脚本 |
| 获取支持 | 麒麟软件官网安全公告 + 官方技术支持 |
升级后务必用 uname -r 确认实际运行内核版本,银河麒麟V10 SP1修复前后分别为 5.4.18-142-generic 和 5.4.18-161-generic。
统信UOS
| 项目 | 内容 |
|---|---|
| 受影响版本 | UOS 1060、UOS 1070 |
| 官方进展 | 已发布修复补丁,内核从 #6302 升级至 #6336 |
| 修复方式 | 公网环境控制中心更新;内网环境使用离线补丁工具 |
| 获取支持 | 统信官网安全公告 + UOS技术支持团队 |
openEuler
| 项目 | 内容 |
|---|---|
| 受影响版本 | openEuler 24.03 LTS |
| 官方进展 | 4月30日起加急修复,五一假期内发布补丁 |
| 获取支持 | openEuler安全公告 + 社区技术支持 |
麒麟信安
| 项目 | 内容 |
|---|---|
| 官方进展 | 5月5日完成4.19、5.10、6.6三个内核系列修复 |
| 获取支持 | 麒麟信安安全公告 + 建议提前联系技术支持 |
银行环境内核升级风险高,别自己闷头搞。
一个实用的自检方法(适用所有国产系统)
除了看内核版本,还可以查内核编译配置:
grep CONFIG_CRYPTO_USER_API_AEAD /boot/config-$(uname -r)
- 输出
=y或=m→ 功能已启用,系统处于风险状态 - 输出
is not set或没有输出 → 功能没开,不受影响
即便不受影响,也建议密切关注厂商安全公告。
五、银行运维处置建议
银行环境变更窗口受限、需要双人复核、业务连续性优先,不能像互联网公司那样说重启就重启。
思路仅供参考,结合各行实际流程来。
阶段一:紧急响应(发现漏洞2小时内)
目标: 摸清家底,先控风险再谈修复。
-
全量资产扫描,确认受影响服务器清单
- 用CMDB或批量运维工具,批量确认内核版本
- 筛选出4.14~6.18.21范围内的主机
- 按业务重要性排优先级
-
在测试环境验证缓解措施
- 找一台测试机,模拟禁用
algif_aead模块 - 跑核心业务回归,确认不影响业务再往下走
- 找一台测试机,模拟禁用
-
制定生产环境处置策略
- 临时缓解:禁用
algif_aead模块(联系厂商确认方案) - 长期修复:等修复内核推送后,制定升级计划
- 回退方案是必须的,没有就不准上
- 临时缓解:禁用
-
通知安全团队做影响评估
-
根据监管要求,评估是否需要上报
- 涉及核心系统的,通常需要24小时内上报监管
- 准备漏洞影响范围、处置方案、时间计划等材料
- 上报内容一般包括:
- 漏洞基本信息(CVE编号、危害等级、影响范围)
- 本行受影响系统清单(按核心/非核心分类)
- 已采取的临时缓解措施
- 后续修复计划和时间表
- 具体上报要求以各行监管合规部门规定为准
千万不要在生产环境直接操作,务必先在测试环境验证。
临时缓解措施(测试环境验证后再执行)
如果暂时无法升级内核,可以先禁用漏洞触发模块:
情况一:模块可卸载
# 1. 禁止模块加载
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
# 2. 卸载已加载的模块
rmmod algif_aead
# 若提示 "Module algif_aead is not currently loaded" 可忽略
# 3. 清空文件系统缓存
sync && echo 3 > /proc/sys/vm/drop_caches
情况二:模块内置(无法卸载)
如果卸载时提示 Module algif_aead is builtin,说明该模块编译进内核了,需要通过grub参数禁用:
# 1. 编辑grub配置
vi /etc/default/grub
# 2. 在 GRUB_CMDLINE_LINUX 行末尾添加
GRUB_CMDLINE_LINUX="... initcall_blacklist=algif_aead_init"
# 3. 更新grub配置
# RHEL/CentOS/Rocky:
grub2-mkconfig -o /boot/grub2/grub.cfg
# Ubuntu/Debian:
update-grub
# 4. 重启系统
reboot
验证缓解措施生效:
# 确认模块未加载
lsmod | grep algif_aead # 应无输出
# 确认配置文件存在
cat /etc/modprobe.d/disable-algif-aead.conf
阶段二:持续跟进(24小时到7天)
- 盯着各发行版安全公告,等修复内核出来
- 制定升级计划,回退方案不能少
- 在UAT环境先跑48小时,确认稳定后再走变更
- 按批次安排生产升级(先非核心,后核心)
- 升级完运维和安全一起复测
阶段三:验证闭环(升级后必做)
uname -r确认内核版本已修复- 确认缓解配置(临时禁用项)有没有被误删
- 检查有没有异常的SUID文件
- 用漏洞扫描工具复测,确认漏洞已修复
六、几个常被问到的问题
Q1:禁用 algif_aead 会影响业务吗?
大多数业务不受影响,但务必在测试环境验证。
不受影响的情况:
- LUKS/dm-crypt磁盘加密(走内核内部接口,不走AF_ALG)
- OpenSSL(有自己的加密实现,不依赖内核AF_ALG)
- SSH(用OpenSSL或自己的加密库)
- IPsec(大多数发行版默认配置不受影响)
需要逐一确认的(可能影响):
- 某些硬件加密加速程序(如Intel QAT的AF_ALG绑定)
- 明确使用
AF_ALGsocket的自定义用户态加密程序
建议先在测试环境禁用,跑一遍核心业务回归,没问题再推生产。
Q2:容器/K8s环境怎么防?
宿主机和容器两层都要防,单一层不够。
| 防护层级 | 建议措施 | 难度 | 效果 |
|---|---|---|---|
| 宿主机层 | 禁用 algif_aead 模块 |
低 | 好 |
| 容器运行时层 | 用seccomp profile阻断AF_ALG socket创建 | 中 | 好 |
| 容器配置层 | 加 readOnlyRootFilesystem: true + runAsNonRoot: true |
低 | 额外防护 |
| 网络层 | 限制容器间不必要的通信 | 中 | 有一定效果 |
银行生产环境建议:宿主机禁用 + 容器配置加固同时做,双保险。
Q3:怎么确认系统已经被攻击了?
说实话,检测非常困难。它不修改磁盘文件,aide、tripwire 全部失效。
几个可以试试的思路:
- 对比内存和磁盘上
/usr/bin/su的哈希值(需要特殊工具读内存文件内容) - 检查异常SUID文件,重点看
/tmp、/dev/shm、/var/tmp - 检查有没有不常见的Python进程
- 如果开了
auditd,查有没有异常的AF_ALG相关系统调用记录
能做的是:加一条审计规则,把尝试加载 algif_aead 的行为记录下来,至少能在事后溯源时发现异常。
写在最后
CVE-2026-31431让我想起2016年的Dirty Cow。同样是内核提权,同样是影响范围极广,同样是PoC公开之后运维连夜加班。
但这次更棘手。Dirty Cow需要抢竞态窗口,利用不稳定;这个漏洞是直线逻辑缺陷,稳定触发,还能通过共享页缓存实现容器逃逸,而且只改内存页缓存,几乎不留痕迹。
漏洞永远修不完,但响应速度可以决定损失大小。
今天就能做的事:
- 跑一遍
uname -r,确认服务器内核版本 - 版本在
4.14 ~ 6.18.21之间的,列入处置清单 - 联系厂商技术支持,获取官方处置建议
- 在测试环境验证缓解措施(如果计划采用)
- 制定详细的升级计划,含回退方案
免责声明: 本文仅供信息安全风险告知和技术交流使用,不构成具体技术操作指导。文中提及的排查和处置方法仅供参考,生产环境操作前请务必联系系统厂商技术支持,在测试环境充分验证并制定回退方案。因参考本文内容进行任何操作而导致的问题、损失或安全风险,本文作者概不负责。
🎁 免费领取:CVE-2026-31431 处置资源包
一个人面对0day时的慌乱,不该由你独自承担。
我整理了一份实战资源包,帮你把慌乱变成有序:
| 资源名称 | 内容说明 | 适用场景 |
|---|---|---|
一键检测脚本 check_cve_2026_31431.sh |
自动检测系统是否受漏洞影响(内核版本+模块检查+异常检测) | 快速摸清家底 |
| 处置检查清单 | 分阶段处置步骤(紧急响应→持续跟进→验证闭环),含操作SOP | 规范处置流程,避免遗漏 |
| 信创系统修复追踪表 | 银河麒麟/统信/UOS/openEuler 修复状态实时更新 | 信创环境应对 |
获取方式(仅需2步):
- 长按识别 关注公众号「云间豹变」
- 回复关键词
CVE31431(注意大小写),自动获取下载链接
💬 你还可能需要:
- 回复
漏洞预警→ 订阅Linux/容器安全漏洞预警(每周更新) - 回复
银行运维→ 获取银行运维实践文章合集 - 回复
容器安全→ 容器逃逸/加固实战指南
本文处置思路已收录至小程序「OpsKit运维宝典」,微信搜索即可查看。
资源包持续更新,建议关注后留意后续推送。
最后更新:2026年5月10日
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)