此脚本用于测试 Kubernetes 集群中 NGINX Ingress 控制器的注解注入漏洞。它仅用于检测目的,涉及 CVE-2025-1974,该漏洞允许恶意注解影响 NGINX 配置。
该漏洞由 Wiz.io 披露(博客文章),涉及控制器未正确处理注入的注解。例如:
nginx.ingress.kubernetes.io/auth-url: "http://placeholder/#; error_log /root/this_path_shouldnt_exist.log debug; #"
这可能导致意外的 NGINX 配置行为和权限错误(如果被处理)。在更高级的场景中,此类注入可能与其他错误配置串联,从而实现远程代码执行 (RCE)。
AdmissionReview 负载。/validate 端点。admission_review.yaml:包含构造好的 AdmissionReview 请求。main.py:向控制器发送负载。首先,转发准入控制器端口:
kubectl port-forward -n ingress-nginx svc/ingress-nginx-controller-admission 8443:443
然后运行:
python main.py --url https://localhost:8443
检查 Ingress 控制器日志:
kubectl logs -n ingress-nginx -l app.kubernetes.io/component=controller
您可能会看到:
nginx: [emerg] open() "/root/this_path_shouldnt_exist.log" failed (13: Permission denied)
这表明该注解被错误地作为指令执行。
仅用于教育目的和授权测试。未经许可不得在系统上运行。
使用此工具验证您的集群是否容易受到通过 NGINX Ingress 进行的注解注入攻击。利用此漏洞可能是导致远程代码执行的更广泛攻击链的一部分。