文章总结: 文章深度解析IngressNightmare漏洞CVE-2025-1974,指出Ingress-NGINX的AdmissionController存在未授权访问风险,攻击者可伪造请求注入恶意配置。该漏洞结合其他漏洞可致远程代码执行与集群接管。文章阐述了攻击链逻辑,并提出升级版本、禁止公网暴露、启用网络策略与mTLS等具体防御建议,强调了控制平面组件安全隔离的重要性。 综合评分: 88 文章分类: 漏洞分析,云安全,漏洞预警,解决方案
IngressNightmare (CVE-2025-1974) 深度解析
云梦DC 云梦DC
云梦安全
2026年2月27日 11:40 河南
一、漏洞背景:问题出在 Admission Controller
Ingress-NGINX 的 Admission Controller 是 Kubernetes 的准入控制机制,用于:
- 校验 Ingress 资源是否合法
- 在对象创建前执行策略验证
- 防止非法配置进入集群
问题在于:
该 Admission Controller 在某些部署模式下,可通过网络未授权访问。
攻击者可以伪造 AdmissionReview 请求,向控制器注入恶意 Ingress 配置。
这意味着:
- 无需认证
- 无需 Kubernetes 凭据
- 直接干预 Ingress 配置生成逻辑
二、核心问题:信任边界被突破
正常逻辑:
用户 → API Server → Admission Controller → 校验 → 创建 Ingress
漏洞情况下:
攻击者 → Admission Controller(未授权)→ 注入配置 → NGINX 重新加载
问题本质:
控制平面组件被错误暴露到可访问网络。
这不是传统意义上的“缓冲区溢出”或“RCE 代码缺陷”,而是:
- 网络暴露错误
- 内部组件认证缺失
- 设计信任假设被打破
三、为什么单独 CVE-2025-1974 不够?
值得注意的是:
CVE-2025-1974 本身并不能直接实现远程代码执行。
但它可以与其他漏洞组合形成完整利用链。
已知组合链包括:
- CVE-2025-1974 + CVE-2025-24514
- CVE-2025-1974 + CVE-2025-1097
- CVE-2025-1974 + CVE-2025-1098
这些漏洞涉及:
- 注解字段注入
- 配置生成逻辑绕过
- NGINX 指令注入
攻击链本质是:
通过 Admission Controller 注入恶意配置 触发 NGINX 动态加载恶意模块 实现命令执行
四、攻击链技术逻辑(高层视角)
从技术结构上看,攻击路径大致如下:
未授权访问 Admission Controller
↓
伪造 AdmissionReview 请求
↓
注入恶意 Ingress 注解
↓
NGINX 生成恶意配置
↓
加载攻击者控制的动态模块
↓
容器内命令执行
这里最关键的环节是:
NGINX 的配置生成逻辑是“可注入”的。
在特定组合漏洞下,攻击者可以让 NGINX 加载动态共享对象(.so 文件),从而执行任意代码。
五、影响范围
受影响环境通常具备以下特征:
- 使用旧版本 Ingress-NGINX
- Admission Controller 对外暴露
- 未启用网络策略隔离
- 使用默认安全配置
- 集群缺少 mTLS 或 RBAC 限制
在以下场景中风险更高:
- 云环境裸暴露 API
- 未做内网隔离的 K3s 集群
- 多租户 Kubernetes 平台
六、漏洞严重性分析
从攻击模型看,该漏洞属于:
- 控制平面攻击
- 横向移动跳板
- 集群级风险放大器
一旦成功利用:
- 可获取 Ingress 控制器权限
- 可能访问集群 ServiceAccount
- 可作为进一步攻击 Kubernetes API 的跳板
在某些错误配置情况下,甚至可能:
容器逃逸 → 节点权限 → 集群接管
七、修复与防御建议
1️⃣ 立即升级 Ingress-NGINX
升级至官方修复版本。
避免使用未经维护的旧镜像。
2️⃣ 禁止 Admission Controller 对公网暴露
检查:
kubectl get svc -A | grep admission
确保:
- 仅 ClusterIP
- 不暴露 NodePort
- 不通过 LoadBalancer 对外
3️⃣ 启用 NetworkPolicy
限制:
- 仅 API Server 可访问 Admission Controller
- 禁止外部流量直接访问
4️⃣ 启用 mTLS
为 Admission Webhook 配置:
- 双向 TLS
- 证书验证
- 强制客户端认证
5️⃣ 加强 NGINX 配置限制
- 禁止加载动态模块
- 禁用可执行指令注入路径
- 限制注解字段白名单
6️⃣ 审计现有集群
检查是否存在:
- 未授权访问日志
- 异常 Ingress 更新
- 可疑 NGINX reload 记录
八、安全启示
IngressNightmare 给 Kubernetes 生态敲响了警钟:
控制平面组件绝不能默认信任内部网络。
在云原生环境中:
- “内部服务”不等于“安全服务”
- Admission Controller 是安全边界
- 任何暴露都是潜在攻击面
这是一次典型的:
设计信任假设错误 → 组合漏洞放大 → 集群级风险
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:云梦安全 云梦DC 云梦DC《IngressNightmare (CVE-2025-1974) 深度解析》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论