Contents
针对 CVE-2026-31431,在不重启服务器的情况下临时封堵漏洞。
本文以 Debian / Ubuntu 系统为例。
检查发行版更新状态
首先,需要先确认你在使用的发行版是否已经推送了该漏洞的内核修复更新。
例如:Debian 系统在此页面查看;Ubuntu 系统在此页面查看。
- 若你的版本尚未有更新,采用方法一
- 若已有更新,直接更新系统,然后重启
- 若已有更新,但暂时不方便重启,采用方法二
方法一:暂时禁用 algif_aead 模块
此方法适用于:发行版尚未推送内核更新,暂时通过禁用模块避免漏洞利用。
执行:
1 | echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf |
这样,不需要重启就能生效。重启后仍生效。
检查:
1 | sudo modprobe algif_aead; echo $? |
方法二:重启前临时修复
此方法适用于:已接收到漏洞的内核更新,但暂时不方便重启加载新内核的情况。
不适用于内核无法接收安全更新的任何情况。
1. 更新内核
1 | sudo apt update |
虽然已经收到了内核更新,但未重启前仍未加载新内核。因此做以下临时修复。
2. 查看当前运行内核是否有 Copy Fail 暴露面
1 | uname -r |
判断:
1 | CONFIG_CRYPTO_USER_API_AEAD=m # algif_aead 是模块,可以临时禁用 |
如果看到类似:
1 | insmod /lib/modules/.../algif_aead.ko |
说明它可以被加载,需要临时禁用。
3. 重启后自动消失的临时修法
1 | sudo install -d -m 0755 /run/modprobe.d |
这只写到 /run/modprobe.d,重启后自动消失。
4. 检查修法是否成功
1 | modprobe -n -v algif_aead |
成功状态应类似:
1 | install /bin/false |
再做一次实际加载测试:
1 | sudo modprobe algif_aead; echo $? |
成功禁用时应返回非 0,例如:
1 | 1 |
然后确认仍未加载:
1 | lsmod | grep '^algif_aead' || echo "algif_aead still blocked" |