Advisory · CVE-2026-114636
Traefik ssl-passthrough Ingresses get an HTTP router that ignores their auth annotations
Traefik 3.7.13, fixed in 3.7.14, builds an extra HTTP router for ssl-passthrough Ingresses in the Kubernetes Ingress NGINX provider without applying the Ingress auth and allow-list annotations, so unauthenticated clients on the HTTP entry point can reach protected backends with nothing logged. CVSS 3.1 8.7.
- Vendor
- Traefik
- Product
- Traefik
- Identifier / CWE
- CVE-2026-114636
CWE-306 - Action timing
- Immediate
Explain it like I’m five
The operator locked the front door with auth annotations, but Traefik quietly built a second, unlocked side door on the plain HTTP port for the same backend, and did not even log who used it.
- 01Operator protects an Ingress
An Ingress carries the ssl-passthrough annotation together with access-control annotations such as auth-type, auth-url or a source allow-list.
- 02Sibling HTTP router is built
Per Traefik, the Ingress also gets an HTTP router on the non-TLS entry points, built outside the regular per-rule processing.
- 03Annotations are never applied
The access-control annotations were parsed but never turned into middlewares on that HTTP router.
- 04Unauthenticated access succeeds
An unauthenticated client reaching the HTTP entry point with the Ingress host reaches the protected backend with no authentication, no allow-listing and nothing logged.
What happened
Traefik disclosed CVE-2026-114636 in its GitHub security advisory: in the Kubernetes Ingress NGINX provider, since v3.7.13 an Ingress carrying the ssl-passthrough annotation gets, besides its TCP passthrough router, an HTTP router on the non-TLS entry points that proxies to the backend. Traefik states that router was built outside the regular per-rule processing, so the access-control annotations set on the same Ingress, such as auth-type with auth-secret, auth-url and whitelist-source-range, were parsed but never turned into middlewares on it. An unauthenticated client reaching the HTTP entry point with the Ingress host could therefore reach a backend the operator had annotated as protected, with no authentication and no source allow-listing applied, and nothing logged. The CVSS 3.1 score is 8.7, with changed scope.
Per Traefik, only v3.7.13 is affected in the maintained line: Traefik v2 and v3 versions before v3.7.13 are not affected, and the fix is v3.7.14. Traefik states the HTTP side of an ssl-passthrough Ingress is now built like any other Ingress with its annotation directives applied, and that the routers it generates are renamed as a result, pointing readers to the v3.7.14 migration guide.
What to do
- Inventory Traefik 3.7.13 deployments using the Kubernetes Ingress NGINX provider, and list Ingresses that combine ssl-passthrough with auth or allow-list annotations.
- Upgrade affected deployments to Traefik 3.7.14, and plan for the router renaming Traefik describes in the v3.7.14 migration guide.
- Until upgraded, consider blocking the non-TLS entry points for ssl-passthrough hosts at the load balancer or network layer, so the unprotected HTTP router cannot be reached.
- Hunt at the backend, not only in Traefik logs: Traefik states nothing was logged for this path, so look for requests arriving at protected backends without the expected authentication.
- Verify the deployed version on every Traefik instance and confirm the auth annotations are enforced on both TLS and HTTP routers after updating.
Management note
This is a silent bypass: the control looked applied in the Ingress definition and the access left no log line. If you migrated Ingresses with ssl-passthrough and auth annotations to Traefik 3.7.13, audit the backends directly and upgrade to 3.7.14.