CVE-2026-24470
Skipper Ingress vulnerability analysis and mitigation

Overview

CVE-2026-24470 is a Server-Side Request Forgery (SSRF) vulnerability in Zalando Skipper, an HTTP router and reverse proxy used as a Kubernetes Ingress controller. When running as an Ingress controller, users with permissions to create an Ingress resource and a Kubernetes Service of type ExternalName can craft routes that abuse Skipper's network access to reach internal services that should otherwise be inaccessible. All versions of Skipper prior to 0.24.0 are affected. The vulnerability was published on January 26, 2026, and carries a CVSS v3.1 base score of 8.1 (High) (GitHub Advisory, Skipper Security Advisory).

Technical details

The root cause is classified as CWE-918 (Server-Side Request Forgery) and CWE-441 (Unintended Proxy or Intermediary / 'Confused Deputy'). Prior to version 0.24.0, Skipper's Kubernetes data client unconditionally honored ExternalName-type Services as Ingress backends without validating or restricting the target hostname. An attacker with low-privilege Kubernetes RBAC permissions (specifically, the ability to create Ingress and Service resources) could define a Service of type ExternalName pointing to an internal cluster address (e.g., the Kubernetes API server or other internal microservices) and then create an Ingress route that causes Skipper to proxy traffic to that internal target. The fix in commit a4c87ce introduces a new EnableExternalNames flag (defaulting to false) that disables ExternalName backend support unless explicitly re-enabled (GitHub Commit, GitHub Advisory).

Impact

Successful exploitation allows an attacker to bypass Kubernetes network segmentation and use Skipper as a proxy to reach internal services that are not exposed externally, including cluster-internal APIs, metadata services, or other microservices. This results in high confidentiality impact (unauthorized access to sensitive internal data) and high integrity impact (potential to interact with and modify internal services), with no direct availability impact. The vulnerability enables lateral movement within the cluster and could facilitate further compromise of internal infrastructure (GitHub Advisory, Feedly).

Exploitability

Exploitation requires low privileges — specifically, Kubernetes RBAC permissions to create Ingress and Service resources — and no user interaction. There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation at this time. The EPSS score is approximately 0.022–0.044%, placing it in the 14th percentile for exploitation likelihood. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog (GitHub Advisory, Feedly).

Exploitation steps

  1. Reconnaissance: Identify a Kubernetes cluster running Skipper as its Ingress controller with a version prior to 0.24.0. Confirm that the attacker's account has RBAC permissions to create Ingress and Service resources in at least one namespace.
  2. Create a malicious ExternalName Service: Define a Kubernetes Service of type ExternalName with the externalName field pointing to an internal target (e.g., kubernetes.default.svc.cluster.local for the Kubernetes API server, or another internal microservice hostname).
    apiVersion: v1
    kind: Service
    metadata:
      name: internal-pivot
    spec:
      type: ExternalName
      externalName: kubernetes.default.svc.cluster.local
  3. Create a malicious Ingress resource: Define an Ingress that routes external traffic through Skipper to the malicious ExternalName Service, effectively making Skipper proxy requests to the internal target.
  4. Send requests via Skipper: Send HTTP requests to the Ingress hostname/path. Skipper resolves the ExternalName and forwards the request to the internal service using its own network identity, bypassing network policies that would otherwise block direct external access.
  5. Access internal services: Receive responses from the internal service, enabling data exfiltration, enumeration of internal APIs, or further lateral movement within the cluster (GitHub Advisory, Skipper Security Advisory).

Indicators of compromise

  • Kubernetes Audit Logs: Creation of Service resources of type ExternalName by non-administrative users, especially with externalName values pointing to internal cluster DNS names (e.g., *.svc.cluster.local, 169.254.169.254, or RFC-1918 addresses).
  • Kubernetes Audit Logs: Creation of Ingress resources referencing the above ExternalName Services by the same low-privilege account.
  • Network: Unexpected outbound HTTP/HTTPS connections from the Skipper pod to internal cluster services or metadata endpoints that are not part of normal Ingress traffic patterns.
  • Skipper Logs: Log entries referencing ExternalName service backends being resolved and proxied, particularly to internal hostnames; look for externalNameRoute or related log messages in Skipper's output.
  • Kubernetes Events: Unusual Ingress or Service creation events in namespaces where such activity is not expected, particularly from service accounts with minimal permissions.

Mitigation and workarounds

Upgrade Skipper to version 0.24.0 or later, which disables Kubernetes ExternalName service support by default. For deployments that legitimately require ExternalName services, re-enable the feature explicitly with -enable-kubernetes-external-names and restrict allowed targets using -kubernetes-only-allowed-external-names=true combined with -kubernetes-allowed-external-name '^[a-z][a-z0-9-.]+[.].allowed.example$' (substituting your approved domain pattern). As an organizational control, restrict Kubernetes RBAC permissions to create Ingress and Service resources to trusted administrators only, reducing the attack surface regardless of Skipper version (GitHub Advisory, GitHub Commit).

Community reactions

The vulnerability was reported by security researchers identified as b0b0haha, moyushui, and j311yl0v3u via the GitHub Advisory Database. Brief mentions appeared on Mastodon and Bluesky via TheHackerWire shortly after disclosure. Red Hat also tracked the vulnerability for its products. Overall community reaction has been limited, consistent with the niche scope of the affected software and the absence of a public exploit (GitHub Advisory).

Additional resources


SourceThis report was generated using AI

Related Skipper Ingress vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2022-38580CRITICAL9.8
  • Skipper Ingress logoSkipper Ingress
  • github.com/zalando/skipper
NoYesOct 25, 2022
CVE-2026-65604HIGH8.8
  • Skipper Ingress logoSkipper Ingress
  • cpe:2.3:a:zalando:skipper
NoYesJul 23, 2026
CVE-2026-23742HIGH8.8
  • Skipper Ingress logoSkipper Ingress
  • github.com/zalando/skipper
NoYesJan 16, 2026
CVE-2026-24470HIGH8.1
  • Skipper Ingress logoSkipper Ingress
  • github.com/zalando/skipper
NoYesJan 26, 2026
CVE-2026-50197HIGH7.8
  • Skipper Ingress logoSkipper Ingress
  • cpe:2.3:a:zalando:skipper
NoYesJul 17, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management