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报告查看器, 上游代理, 子域名突变, 安全加固, 本地提权, 漏洞修复, 特权升级, 网络安全培训, 黑名单