Linux 内核 “Copy Fail” 漏洞(CVE-2026-31431)修复方案

Linux 内核 "Copy Fail" 漏洞(CVE-2026-31431)是一个高危本地提权漏洞,影响自 2017 年以来的大多数 Linux 内核版本。攻击者仅需普通用户权限,即可稳定提权到 root,并可能实现容器逃逸。公开 PoC 已出现,且已被野外利用。(Xint)

一、漏洞影响范围

受影响核心条件:

  • Linux Kernel 4.14 ~ 7.x

  • 启用了 AF_ALG / algif_aead

  • 使用 authencesn AEAD 加密模块

  • 典型发行版:

    • Ubuntu 20.04/22.04/24.04

    • Debian 11/12

    • RHEL / Rocky / AlmaLinux

    • Amazon Linux 2023

    • SUSE

    • Kubernetes Node / Docker Host

漏洞源于 Linux 内核 algif_aead 的逻辑缺陷,可通过 splice() 修改 page cache,实现任意可读文件的 4-byte 覆写,最终提权。(sysdig.com)


二、官方修复方案(推荐)

方案 1:升级内核(最佳方案)

这是唯一彻底修复方法。

已修复版本(主线)

根据公开信息,目前修复已进入:

  • Kernel 7.0

  • Kernel 6.19.12+

  • Kernel 6.18.22+

部分发行版已开始 backport。(sysdig.com)


Ubuntu 修复

更新系统

复制代码
sudo apt update
sudo apt full-upgrade -y
sudo reboot

查看是否已修复

复制代码
uname -r
ubuntu-security-status

检查 Ubuntu 安全公告

Ubuntu CVE-2026-31431 安全公告

Ubuntu 在正式内核补丁发布前,已通过更新 kmod 禁止加载 algif_aead 模块作为缓解措施。(Reddit)


RHEL / Rocky / AlmaLinux 修复

复制代码
sudo dnf update kernel kernel-core -y
sudo reboot

检查:

复制代码
rpm -q kernel
uname -r

Red Hat 官方安全页面:

Red Hat Security Center


Debian 修复

复制代码
sudo apt update
sudo apt install linux-image-amd64
sudo reboot

三、临时缓解方案(无法立即重启时)

如果业务暂时不能升级内核,可先做 mitigation。


方案 2:禁用 algif_aead 模块(强烈建议)

漏洞核心入口:

复制代码
algif_aead

临时卸载

复制代码
sudo modprobe -r algif_aead

永久禁用

创建 blacklist:

复制代码
echo "blacklist algif_aead" | sudo tee /etc/modprobe.d/disable-algif.conf

更新 initramfs:

Ubuntu/Debian:

复制代码
sudo update-initramfs -u

RHEL:

复制代码
sudo dracut -f

重启:

复制代码
sudo reboot

验证:

复制代码
lsmod | grep algif

应无输出。

CERT-EU 与多个安全厂商均建议此缓解方案。(cert.europa.eu)


四、Kubernetes / 容器环境修复

此漏洞对 K8s 特别危险,因为:

  • container 与 host 共用 kernel

  • 可实现 container escape

  • CI/CD Runner 风险极高

(Microsoft)


Kubernetes 建议

1. 升级所有 Node Kernel

重点:

  • Worker Node

  • GPU Node

  • Jenkins Runner

  • GitLab Runner


2. 禁止特权容器

检查:

复制代码
kubectl get pods -A -o json | jq '.items[] | select(.spec.containers[].securityContext.privileged==true)'

3. 使用 seccomp

禁止 AF_ALG:

复制代码
{
  "defaultAction": "SCMP_ACT_ALLOW",
  "syscalls": [
    {
      "names": ["socket"],
      "action": "SCMP_ACT_ERRNO",
      "args": [
        {
          "index": 0,
          "value": 38,
          "op": "SCMP_CMP_EQ"
        }
      ]
    }
  ]
}

其中:

复制代码
AF_ALG = 38

4. AppArmor / SELinux

限制:

  • AF_ALG

  • splice

  • keyctl


五、检测系统是否存在风险

检查模块

复制代码
grep algif_aead /proc/modules

或:

复制代码
lsmod | grep algif

检查是否允许 AF_ALG

复制代码
cat /proc/crypto | grep authencesn

检查内核版本

复制代码
uname -a

如果:

  • 4.14+

  • 且未安装发行版补丁

则大概率受影响。


六、安全加固建议

建议同时实施

1. 开启内核锁定

复制代码
sudo sysctl kernel.kptr_restrict=2

2. 限制普通用户 shell

减少本地提权面。


3. 审计异常 splice 行为

auditd:

复制代码
-a always,exit -F arch=b64 -S splice -k splice-monitor

4. EDR 检测

重点检测:

  • AF_ALG

  • splice

  • page cache overwrite

  • setuid binary tamper

Microsoft Defender、Sysdig 已发布相关检测规则。(Microsoft)


七、企业级应急建议

建议优先级:

优先级 操作
P0 升级 Kernel
P0 禁用 algif_aead
P1 修复 K8s Node
P1 CI/CD Runner 隔离
P2 增加 seccomp
P2 增加 auditd 监控

八、官方参考

(Xint)

相关推荐
mohesashou19 小时前
红帽linux的K8S部署
linux·kubernetes·ansible
xiaoye-duck20 小时前
《Linux网络编程》UDP Socket 编程实战:从 Echo 回显、通用字典服务到套接字封装全流程
linux·网络·udp
酒神dnspup20 小时前
CDN 回源检测怎么做?用 DNSPup 验证节点命中、源站暴露与多地可用性
运维·服务器·网络·网络协议·tcp/ip
Rain的Java大神之路20 小时前
短信接口被狂刷怎么处理
java·运维·后端·web安全·面试·架构·xss
江南风月21 小时前
3分钟快速上手日志审计系统 WGLOG v2.2 更新了什么
运维·服务器·网络
孙克旭_21 小时前
Docker 镜像构建|Vue+SpringBoot+Go 多语言项目 Dockerfile 案例
linux·运维·vue.js·spring boot·docker·dockerfile
life码农21 小时前
Linux截取Nginx指定时间段日志的三种方法(grep/awk/sed)
linux·nginx
接口不宕机1 天前
外贸公司实战:利用 1688API 自动化监控竞品价格,解决采购定价痛点
运维·自动化
Dawn-bit1 天前
Linux网络进阶:TCP三次握手和四次挥手与TCP连接状态
linux·服务器·网络·tcp/ip·云计算·智能路由器