CVE-2026-54246
MediumCVSS 5.7Exploitation Probability (EPSS)
Low risk27th percentile - higher than 27% of all known CVEs
Summary
Skipper before version 0.27.13 exposes cluster-wide control-plane data via /routes, /routes/{zone}, /swarm/redis/shards, and /swarm/valkey/shards without application-layer authentication. The handlers only restrict HTTP methods and do not authenticate callers. A compromised pod can bypass namespace-scoped RBAC and read sensitive data across namespaces.
Risk Assessment
The organization is exposed to confidentiality loss, including backend URLs, filter-chain details, OAuth/OIDC paths, and Redis/Valkey shard addresses, which may facilitate further attacks.
Recommendation
Upgrade Skipper to version 0.27.13 or later. Additionally, restrict access to routesrv using NetworkPolicy and consider adding application-layer authentication.
Other vulnerabilities in Skipper
See all- CVE-2026-86043High
Skipper is an HTTP router and reverse proxy for service composition. Prior to version 0.27.37, the opaAuthorizeRequestWithBody filter can authorize an oversized request after Skipper truncates the body presented to Open Policy Agent because the input.truncated_body signal is derived from Content-Length rather than the actual read result. In filters/openpolicyagent/openpolicyagent.go, ExtractHttpBodyOptionally truncates bodies at maxBodyBytes, while filters/openpolicyagent/internal/envoy/skipperadapter.go copies the request headers without adding a Content-Length value that reflects the truncation. For an HTTP/1.1 request using Transfer-Encoding: chunked or an HTTP/2 request without Content-Length, a body-inspecting policy that follows the prior mitigation and permits input.truncated_body equal to false can evaluate only the truncated prefix, allow the request, and then forward the full oversized body to the protected upstream. This residual issue is distinct from CVE-2026-50197. This issue is fixed in version 0.27.37.
- CVE-2022-27262Critical
An arbitrary file upload vulnerability in the file upload module of Skipper v0.9.1 allows attackers to execute arbitrary code via a crafted file.
- CVE-2026-65838High
Skipper before 0.27.35 has a vulnerability in the opaAuthorizeRequestWithBody filter that allows bypassing deny-on-presence Rego policies for requests with oversized declared Content-Length when the body exceeds the size limit.
- CVE-2026-54247Medium
In Skipper prior to 0.26.22, the Handler in dataclients/kubernetes/admission/admission.go passes request bodies to the Kubernetes admission endpoint at :9443/admission directly to io.ReadAll(r.Body) without a size limit. An attacker with in-cluster network access and a valid Kubernetes client certificate can send a very large body, causing unbounded memory allocation and an out-of-memory termination of the Skipper process.
- CVE-2026-65604High
Skipper has an incomplete fix for CVE-2026-50197 where oversized request bodies bypass Open Policy Agent (OPA) deny-on-presence policies. When the request body exceeds the maxBodyBytes limit, Skipper forwards the full payload to the upstream service while OPA evaluates an empty parsed_body, allowing forbidden actions.
- CVE-2026-50197High
Vulnerability in Skipper (HTTP router and reverse proxy) before version 0.26.10 allows bypassing request body inspection for HTTP/1.1 Transfer-Encoding: chunked and HTTP/2 requests without content-length header via OpenPolicyAgent integration. Attacker can send malicious data that is not inspected but reaches the upstream service.
Original NVD description (English source)
Skipper is an HTTP router and reverse proxy for service composition. Prior to 0.27.13, the routesrv component serves cluster-wide control-plane data without application-layer authentication through /routes, /routes/{zone}, /swarm/redis/shards, and /swarm/valkey/shards. The handlers registered in routesrv/routesrv.go, eskipBytes.ServeHTTP in routesrv/eskipbytes.go, RedisHandler.ServeHTTP in routesrv/redishandler.go, and ValkeyHandler.ServeHTTP in routesrv/valkeyhandler.go only restrict HTTP methods and do not authenticate callers. A compromised or otherwise attacker-controlled pod that can reach routesrv on the Kubernetes cluster network can bypass its namespace-scoped RBAC and read Ingress and RouteGroup backend URLs, filter-chain and OAuth or OIDC path details, and Redis or Valkey shard addresses across namespaces. NetworkPolicy can restrict reachability but does not remove the missing-authentication condition, and the established impact is confidentiality exposure rather than direct integrity or availability loss. This issue is fixed in version 0.27.13.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

