Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
IngressNightterror — 我对 IngressNightmare 漏洞(CVE-2025-1974)的看法 | Kitploit
工具/GitHubGitHub/i3r1h0n/ingressnightterror
容器安全漏洞分析漏洞利用Web应用程序漏洞利用渗透测试云安全学习与教育Payload 开发
GitHubi3r1h0n/ingressnightterror

IngressNightterror

我对 IngressNightmare 漏洞(CVE-2025-1974)的看法

查看仓库
19个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

IngressNightterror (CVE-2025-1974)

概述

这个仓库是我对 IngressNightmare 漏洞的研究。它包含了存在漏洞的 Ingress 部署文件、漏洞利用程序本身以及共享对象载荷。

CVE

CVE 索引列表:

  • CVE-2025-1974 - 根漏洞
  • CVE-2025-24514 - auth-url 注解注入
  • CVE-2025-1097 - auth-tls-match-cn 注解注入
  • CVE-2025-1098 - 镜像 UID 滥用

参考资料

只是一些参考资料:

  • WIZ 研究原始文章
  • Kubernetes GitHub issue
  • Kubernetes 博客文章
  • Amazon AWS 公告
  • Google 云公告

根本原因

此漏洞的根源在于缺乏适当的输入清理。当你发送 AdmissionReview 请求时,它会创建一个临时的 NGINX 配置,随后使用 nginx -t 命令测试其有效性。参见已缓解该 bug 的源代码。

能够控制被测试配置的内容,使我们可以利用大量配置字段来注入畸形配置:

  • auth-url - 未经适当清理,允许我们添加 # 和 \n。我们将使用这个注入点。
  • auth-tls-match-cn - 只要求该字段以 CN= 开头并且是有效的正则表达式。
  • ing.UID - UID 会原样写入配置。

NGINX 配置仅仅被测试这一事实,略微减少了我方可使用的指令数量。剩下的指令之一是 ssl_engine,它允许我们加载共享库。这是一个很好的切入点。但我们如何将 .so 文件放入 pod 文件系统呢?

WIZ 的聪明人想出了一个主意:发送一个以我们的 .so 对象为请求体的请求,如果它足够大,NGINX 会将其保存到 procfs 中的一个文件里!我们还可以调整 Content-Length,让 NGINX 等待更多数据,从而使其将文件在 procfs 中保留一段时间。实际的 PID 和 FD 编号需要猜测。

更多信息,请阅读 WIZ 研究团队撰写的原始分析文章。

漏洞利用

漏洞利用代码相当不言自明。所以请直接查看源码。

环境搭建

  1. 克隆仓库:

    root@kitploit:~
    git clone https://github.com/I3r1h0n/IngressNightterror
    cd IngressNightterror
    
  2. 启动一个 docker k3s 镜像:

    root@kitploit:~
    cd stand
    docker compose up -d
    
  3. 部署 NGINX Ingress:

    如果你使用 Linux/Mac,可以通过脚本部署:

    root@kitploit:~
    ./k8s/setup.sh
    

    如果你在 Windows 上,或者想更精细地控制部署过程,请手动执行以下步骤:

    部署 NGINX Ingress:

    root@kitploit:~
    kubectl --kubeconfig=./output/kubeconfig.yaml apply -f ./k8s/ingress.yaml
    

    现在你可以使用 ./output 中提供的配置来使用 kubectl。别忘了使用 ingress-nginx 命名空间。

    重要提示:ingress.yaml 是基于存在漏洞的 NGINX Ingress 制作的

Payload 共享对象

该 payload 是一个简单的反向代理。使用以下命令构建之前,别忘了修改端口和 IP 地址:

root@kitploit:~
make all

它将使用 docker 容器 gcc:latest 构建共享对象。

致谢

向最初发现该漏洞的 WIZ 研究团队以及 NGINX Ingress 维护者致以崇高敬意。

由 I3r1h0n 制作。

下载工具