boliu83/cve-2026-31431-algif-aead-remediator
GitHub: boliu83/cve-2026-31431-algif-aead-remediator
通过 Kubernetes DaemonSet 自动检测并缓解 Linux 内核 algif_aead 模块本地提权漏洞(CVE-2026-31431),以 modprobe 黑名单方式在集群范围内实现虚拟补丁。
Stars: 0 | Forks: 0
# CVE-2026-31431 / GHSA-2274-3hgr-wxv6 — algif_aead 修复程序
**严重性:** 高 (CVSS 7.8 — `CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H`)
## 背景
[CVE-2026-31431](https://github.com/advisories/GHSA-2274-3hgr-wxv6) 是 Linux 内核的 `algif_aead` 模块(AF_ALG AEAD 加密套接字接口)中的一个本地权限提升漏洞。低权限的本地用户可以利用错误的原地缓冲区操作获取完整的 root 权限。所有运行在上游补丁之前版本 Linux 内核的 AKS 节点池均可能受到影响。
正常的 Kubernetes 或 AKS 工作负载不需要 `algif_aead` 模块。将其加入黑名单可以彻底消除此攻击面。
## 此 DaemonSet 的作用
每个 Linux 节点上都会运行一个 Pod。在启动时以及随后的每 60 秒,每个 Pod 会执行以下操作:
1. **写入**宿主机的 `/etc/modprobe.d/modprobe-CIS.conf` 文件,内容为:
install algif_aead /bin/false
blacklist algif_aead
这可以防止该模块在重启时或通过 `modprobe` 被加载。
2. **检查** `/proc/modules`(与所有容器共享的实时宿主机内核模块列表)中是否存在 `algif_aead`。
3. 使用结果**标记** Kubernetes 节点,以便您可以跨集群进行查询:
| 标签值 | 含义 |
|---|---|
| `mitigated` | 模块未加载;已应用黑名单配置 |
| `module-loaded` | 模块当前已加载 —— 请立即进行调查 |
## 文件
| 文件 | 用途 |
|---|---|
| `rbac.yaml` | Namespace、ServiceAccount、ClusterRole(对 nodes 具有 `get`/`patch` 权限)、ClusterRoleBinding |
| `configmap.yaml` | 挂载到每个 Pod 中的 Shell 修复脚本 |
| `daemonset.yaml` | DaemonSet 定义 —— 每个 Linux 节点一个 Pod |
## 前置条件
- 已配置指向目标 AKS 集群的 `kubectl`
- 集群管理员权限(创建 ClusterRole 和特权 namespace 所需)
## 部署
按顺序应用清单:
```
kubectl apply -f rbac.yaml
kubectl apply -f configmap.yaml
kubectl apply -f daemonset.yaml
```
等待所有节点完成部署:
```
kubectl -n security-remediation rollout status daemonset/cve-2026-31431-remediator
```
## 验证
### 快速检查节点修复状态
```
kubectl get nodes -L vulnerability.aks.io/CVE-2026-31431
```
干净集群的预期输出:
```
NAME STATUS ROLES AGE VERSION CVE-2026-31431
aks-nodepool1-xxxxx-vmss000000 Ready 4d v1.33.7 mitigated
aks-nodepool1-xxxxx-vmss000001 Ready 4d v1.33.7 mitigated
```
### 检查特定 Pod 的日志
```
# 列出 Pod 及其分配的节点
kubectl -n security-remediation get pods -o wide
# 查看特定 Pod 的日志
kubectl -n security-remediation logs -f
```
预期日志输出:
```
2026-05-01T01:33:36Z [INFO ] CVE-2026-31431 remediator starting on node: aks-nodepool1-...
2026-05-01T01:33:36Z [INFO ] Blacklist config written → /host/etc/modprobe.d/modprobe-CIS.conf
2026-05-01T01:33:36Z [INFO ] Node aks-nodepool1-...: 'algif_aead' is NOT loaded — blacklist config applied, node is mitigated.
2026-05-01T01:33:36Z [INFO ] Labeled node aks-nodepool1-...: vulnerability.aks.io/CVE-2026-31431=mitigated
2026-05-01T01:33:36Z [INFO ] Entering monitoring loop (interval: 60s)
```
### 验证 modprobe 配置是否已写入宿主机
```
kubectl -n security-remediation exec -- cat /host/etc/modprobe.d/modprobe-CIS.conf
```
预期内容:
```
# CIS 加固 – 缓解 CVE-2026-31431 (GHSA-2274-3hgr-wxv6)
# 防止 algif_aead (AF_ALG AEAD) LPE 被加载或利用。
install algif_aead /bin/false
blacklist algif_aead
```
### 警报:处于 module-loaded 状态的节点
如果节点显示 `module-loaded`,则表示该内核模块当前处于活动状态,该节点可能已被入侵。请立即隔离并排空该节点以进行取证分析:
```
# 查找受影响的节点
kubectl get nodes -l vulnerability.aks.io/CVE-2026-31431=module-loaded
# 隔离并排空节点以进行调查
kubectl cordon
kubectl drain --ignore-daemonsets --delete-emptydir-data
```
## 卸载
### 移除 Kubernetes 资源
```
kubectl delete -f daemonset.yaml
kubectl delete -f configmap.yaml
kubectl delete -f rbac.yaml
```
这将删除 DaemonSet 及其所有 Pod、ConfigMap、ServiceAccount、ClusterRole、ClusterRoleBinding 以及 namespace。
### 移除节点标签(可选)
```
kubectl label nodes --all vulnerability.aks.io/CVE-2026-31431-
```
### 从节点中移除 modprobe 配置(不推荐)
仅当您有替代缓解措施(已修补的内核)时才执行此操作。在每个节点上运行,或通过特权 Pod 运行:
```
rm -f /etc/modprobe.d/modprobe-CIS.conf
```
## 安全说明
- Pod 以 **root** 用户(`runAsUser: 0`)运行 —— 这是写入宿主机 `/etc/modprobe.d/` 目录所必需的。
- 所有 Linux capabilities 均被**丢弃**(`capabilities.drop: ["ALL"]`)。不需要任何内核 capabilities。
- 主容器以 **`readOnlyRootFilesystem: true`** 模式运行。只有挂载的 `hostPath` 和 `emptyDir` 卷是可写的。
- 宿主机上仅绑定挂载了 `/etc/modprobe.d/` —— 不包括 `/etc`、`/proc` 或任何更宽泛的路径。
- `curl` 二进制文件及其共享库由 init 容器暂存到 `emptyDir`(`/tools`)中,因此主容器无需对 rootfs 的写入权限即可调用 Kubernetes API。
- 服务账号拥有所需的最低 RBAC 权限:仅对 `nodes` 具有 `get` 和 `patch` 权限。
标签:AKS, algif_aead, Cutter, CVE-2026-31431, DaemonSet, DevSecOps, GHSA-2274-3hgr-wxv6, GitHub Advanced Security, Linux内核安全, modprobe, Web报告查看器, 上游代理, 子域名突变, 安全加固, 本地提权, 漏洞修复, 特权升级, 网络安全培训, 黑名单