# CVE-2025-1098: ingress-nginx controller - configuration injection via unsanitized mirror annotations - Exploited (CISA KEV): no - Published: 2025-03-24 - CVSS: 8.8 HIGH (v3.1) - EPSS: 86.1% (100th percentile) - CWE: CWE-20 A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `mirror-target` and `mirror-host` Ingress annotations can be used to inject arbitrary 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.) ## Edge WAF coverage (claimed by vendors, not measured) | Vendor | Status | First rule | Days after publication | |---|---|---|---| | Cloudflare | Rule off by default | 2025-05-27 | 64 | | AWS | No public claim | — | — | | Microsoft Azure | No public claim | — | — | | Google Cloud | No public claim | — | — | | Fastly | Before feed history | — | — | | F5 | Rule published | 2025-04-28 | 35 | | Akamai | No public source | — | — | | OWASP CRS | No public claim | — | — | ### Cloudflare - 2025-05-27 · new · rule a4af6f2f15c9483fa9eab01d1c52f6d0 · default Disabled > Ingress-Nginx - Remote Code Execution - CVE:CVE-2025-1098. Previous action: Log. New action: Disabled. This is a New Detection Source: https://developers.cloudflare.com/changelog/post/2025-05-27-waf-release/ ### F5 - 2025-04-28 · new · rule 200103569 > Added: signature 200103569 "Kubernetes NGINX Ingress Admission Controller Command Execution" (Command Execution, risk High), systems: Nginx. References: CVE-2025-1097, CVE-2025-1098, CVE-2025-1974, CVE-2025-24514. Source: https://docs.cloud.f5.com/docs-v2/platform/changelogs/security-details-changelog - 2025-05-22 · new · rule 200103569 > Added: signature 200103569 "Kubernetes NGINX Ingress Admission Controller Command Execution" (Command Execution, risk High), systems: Nginx. References: CVE-2025-1097, CVE-2025-1098, CVE-2025-1974, CVE-2025-24514. Source: https://docs.cloud.f5.com/docs-v2/platform/changelogs/security-details-changelog ## Our test (measured) - OWASP Core Rule Set 4.25.0, paranoia level 1, anomaly threshold 5, default CRS settings: passed (0 of 1 requests blocked), template CVE-2025-1098, 2026-11-02 - OWASP Core Rule Set 4.25.0, paranoia level 2, anomaly threshold 5, default CRS settings: blocked (1 of 1 requests blocked), template CVE-2025-1098, 2026-11-02 "No public claim" means no vendor statement names this CVE; "Before feed history" means the CVE is older than the vendor feed. In both cases generic rules may still block it. HTML: https://cve.vigilbase.com/cve/CVE-2025-1098 · JSON: https://cve.vigilbase.com/api/v1/cves/CVE-2025-1098