CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-32695

CVE-2026-32695: Ingress Rule Injection and Host Restriction Bypass in Traefik

Alon Barad
Alon Barad
Software Engineer

Mar 27, 2026·7 min read·38 visits

Executive Summary (TL;DR)

An injection flaw in Traefik's Kubernetes providers allows authenticated users to bypass host restrictions by embedding unescaped backticks in Ingress resource definitions, leading to unauthorized cross-tenant traffic routing.

Traefik Kubernetes providers (Knative, Ingress, and Ingress-NGINX) fail to properly sanitize user-controlled input during the generation of internal routing rules. This improper neutralization allows authenticated users to inject arbitrary Domain-Specific Language (DSL) syntax via unescaped string interpolation. Exploitation enables malicious tenants to bypass host restrictions and intercept cross-tenant traffic in multi-tenant cluster environments.

Vulnerability Overview

Traefik serves as a widely deployed HTTP reverse proxy and load balancer in cloud-native environments. The software relies on a dynamic rule engine to route incoming traffic to appropriate backend services. This routing configuration is frequently automatically generated by provider modules that translate external state, such as Kubernetes Ingress resources, into Traefik's internal Domain-Specific Language (DSL).

CVE-2026-32695 identifies an injection vulnerability within the Kubernetes providers for Traefik, specifically the Knative, Ingress, and Ingress-NGINX modules. These providers improperly construct routing rules by interpolating user-controlled values without adequate escaping. This flaw allows authenticated users with resource creation privileges to inject arbitrary logic into the generated routing expressions.

The vulnerability is classified as CWE-74, representing an improper neutralization of special elements in output used by a downstream component. An attacker exploiting this flaw can manipulate the routing logic to bypass host-based restrictions. This results in the exposure of cross-tenant traffic in multi-tenant cluster configurations.

The issue affects Traefik versions prior to 3.6.11 and the 3.7.0 early access track prior to 3.7.0-ea.2. The security impact is scoped primarily to the subsequent confidentiality of other tenants' traffic. The vulnerability carries a CVSS 4.0 base score of 6.3, reflecting the requirement for existing cluster privileges and the specific network configuration.

Root Cause Analysis

The root cause of CVE-2026-32695 lies in the string interpolation methodology used by Traefik's Kubernetes provider implementations. Traefik's rule engine evaluates routing expressions defined in a custom DSL. Within this DSL, string literals are typically enclosed in backtick characters to denote raw strings.

The vulnerable Kubernetes providers build these routing expressions dynamically based on values extracted from Kubernetes API resources. The code utilized the fmt.Sprintf function with the %v or %s format verbs to embed user-controlled hostnames directly into the backtick-delimited strings. The application performed no sanitization or escaping of the input values prior to this interpolation.

Because the input was not escaped, a user could supply a string containing a backtick character to prematurely terminate the string literal within the generated DSL expression. Once the string is terminated, the parser interprets the subsequent characters as executable DSL syntax rather than literal string data. This creates a classic injection vector where data boundaries are conflated with code boundaries.

The lack of input validation at the provider level meant that Traefik implicitly trusted the data structure of the Kubernetes Ingress resource. The vulnerability occurs strictly during the translation phase between the Kubernetes API state and Traefik's internal configuration state. The routing engine itself processes the injected rule verbatim, completely unaware that the logic originated from an untrusted source.

Code Analysis

An examination of the vulnerable code path reveals the direct interpolation of unvalidated input into the routing expressions. In the Knative and Ingress providers, the Host rule was constructed using simple string formatting. The application appended the generated string to the hostRules collection for subsequent evaluation by the rule engine.

The following code snippet demonstrates the vulnerable implementation in the Knative provider. The host variable, derived directly from the Kubernetes resource definition, is injected into the backtick-enclosed string using the %v format verb.

// Vulnerable implementation in pkg/provider/kubernetes/knative/kubernetes.go
hostRules = append(hostRules, fmt.Sprintf("Host(`%v`)", host))

The remediation for this vulnerability, introduced in commit 11d251415a6fd935025df5a9dda898e17e3097b2, replaces the insecure string interpolation with safe quoting. The patch substitutes the %v and %s format verbs with %q. In Go's fmt package, the %q verb securely formats the input as a double-quoted string, automatically escaping any internal quotes or special characters using strconv.Quote.

The patch effectively neutralizes the injection vector by ensuring that the user input remains strictly bounded as a string literal during DSL evaluation. This fix is comprehensive for the identified vulnerable paths within the Kubernetes providers. The following diff illustrates the exact changes made to both the Knative and Ingress providers to enforce secure string boundaries.

// pkg/provider/kubernetes/knative/kubernetes.go
- hostRules = append(hostRules, fmt.Sprintf("Host(`%v`)", host))
+ hostRules = append(hostRules, fmt.Sprintf("Host(%q)", host))
 
// pkg/provider/kubernetes/ingress/kubernetes.go
- return fmt.Sprintf("Host(`%s`)", host)
+ return fmt.Sprintf("Host(%q)", host)

Exploitation

Exploitation of CVE-2026-32695 requires the attacker to possess authorization to create or modify Ingress or Knative resources within the target Kubernetes cluster. This prerequisite establishes the attack vector as an authenticated, internal threat model. The attacker uses standard Kubernetes API interaction tools, such as kubectl, to deploy the malicious configuration.

The attack methodology centers on crafting a malicious host value within the Ingress resource definition. The attacker engineers a string that begins with a legitimate hostname, closes the backtick delimiter, appends a logical operator, and introduces a new routing directive. For example, the attacker might supply the value `legit-tenant.example.com`) || Host(`attacker-controlled.com`.

When the Traefik provider processes this malicious resource, the string formatting function generates the combined DSL expression: Host(`legit-tenant.example.com`) || Host(`attacker-controlled.com`). The Traefik routing engine subsequently evaluates this entire expression as a valid configuration. The resulting internal rule instructs the proxy to direct traffic for both the legitimate tenant and the attacker-controlled domain to the attacker's designated backend service.

This mechanism allows the attacker to unilaterally expand the scope of their routing rules. By injecting the || (OR) operator alongside additional Host directives, the attacker forces the proxy to process traffic intended for administrative endpoints or isolated tenants.

Impact Assessment

The primary impact of this vulnerability is the breakdown of logical isolation in multi-tenant environments. Traefik is frequently deployed as the central ingress controller for shared clusters, relying on strict host-based routing to segregate tenant traffic. The injection flaw allows a malicious tenant to subvert this routing logic entirely.

By injecting arbitrary host rules, an attacker can coerce the Traefik proxy into routing traffic intended for other tenants to the attacker's backend pods. This enables the interception of sensitive requests, potentially leading to the disclosure of authentication tokens, session cookies, or proprietary data. The integrity of the application traffic remains unaffected, but the confidentiality is severely compromised.

Furthermore, the attacker can leverage this vulnerability to bypass administrative host restrictions. If certain administrative interfaces or internal services are protected by routing rules that restrict access to specific hostnames, the attacker can append their own hostname to the rule evaluation. This provides unauthorized access to endpoints that were previously shielded by the ingress controller's configuration.

The CVSS 4.0 assessment of 6.3 reflects the specific operational constraints of the vulnerability. While the subsequent confidentiality impact is high, the attack requires prior authorization to manipulate cluster state. The vulnerability does not permit remote code execution on the Traefik host or direct access to the underlying operating system.

Remediation

The definitive remediation for CVE-2026-32695 is upgrading the Traefik deployment to a patched version. Users operating on the 3.6 release branch must upgrade to version 3.6.11 or later. Users evaluating the 3.7 early access track must upgrade to version 3.7.0-ea.2 or later to ensure the secure quoting mechanisms are in place.

Organizations unable to immediately deploy the patched versions must implement compensating controls at the Kubernetes API level. The most effective mitigation strategy involves deploying a Validating Admission Controller, such as OPA Gatekeeper or Kyverno. Administrators should configure rules that explicitly reject any Ingress or Knative resource containing backticks or unexpected special characters within the host or header fields.

Additionally, cluster administrators must audit and restrict Role-Based Access Control (RBAC) permissions. Only highly trusted users and service accounts should possess the authorization to create or modify ingress configurations in multi-tenant clusters. Reducing the attack surface by limiting resource modification privileges minimizes the risk of successful exploitation by a malicious insider or compromised tenant account.

Following the application of the patch, administrators should review existing Traefik routing configurations and Kubernetes Ingress resources for signs of anomalous or injected host definitions. Any unexpected logical operators or multiple host declarations within a single rule context should be treated as an indicator of compromise and investigated accordingly.

Official Patches

Traefik LabsTraefik v3.6.11 Release Notes
Traefik LabsTraefik v3.7.0-ea.2 Release Notes

Fix Analysis (1)

Technical Appendix

CVSS Score
6.3/ 10
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N

Affected Systems

Traefik Kubernetes Ingress ProviderTraefik Kubernetes Ingress-NGINX ProviderTraefik Kubernetes Knative Provider

Affected Versions Detail

Product
Affected Versions
Fixed Version
Traefik
Traefik Labs
< 3.6.113.6.11
Traefik
Traefik Labs
>= 3.7.0-ea.1, < 3.7.0-ea.23.7.0-ea.2
AttributeDetail
CWE IDCWE-74
Attack VectorNetwork
Privileges RequiredLow
CVSS Score6.3 (Medium)
ImpactHost Restriction Bypass, Traffic Hijacking
Exploit StatusProof-of-Concept
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
CWE-74
Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')

Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')

Vulnerability Timeline

Vulnerability identified and assigned CVE-2026-32695
2026
Patch released in versions 3.6.11 and 3.7.0-ea.2
2026

References & Sources

  • [1]GitHub Advisory (GHSA-67jx-r9pv-98rj)
  • [2]NVD CVE Record

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•14 minutes ago•GHSA-42H9-826W-CGV3
7.5

GHSA-42H9-826W-CGV3: Denial of Service via Uncontrolled Recursion in Axios formDataToJSON

An uncontrolled recursion vulnerability (CWE-674) in the Axios HTTP library allows remote attackers to cause a Denial of Service (DoS) by submitting form-data with deeply nested property keys. When Axios converts this form-data to JSON, it recursively traverses the path segments without establishing a maximum depth limit, resulting in a maximum call stack size exhaustion and a hard process crash in Node.js environments.

Alon Barad
Alon Barad
0 views•8 min read
•about 7 hours ago•CVE-2026-47296
7.8

CVE-2026-47296: Elevation of Privilege via SQL Injection in Microsoft SQL Server Internal Stored Procedures

CVE-2026-47296 is a high-severity local Elevation of Privilege (EoP) vulnerability in Microsoft SQL Server. The issue stems from the improper neutralization of special elements within internal database routines, allowing a low-privileged authenticated user to execute arbitrary database queries with the privileges of the database owner or system administrator. Microsoft has addressed this vulnerability in its July 2026 security updates.

Amit Schendel
Amit Schendel
7 views•5 min read
•about 7 hours ago•CVE-2026-47295
8.8

CVE-2026-47295: SQL Injection and Privilege Escalation in Microsoft SQL Server

CVE-2026-47295 is a high-severity elevation of privilege vulnerability in Microsoft SQL Server (2016 through 2025). An authenticated, low-privileged attacker can execute remote SQL injection commands within system stored procedures to elevate permissions to sysadmin.

Amit Schendel
Amit Schendel
9 views•6 min read
•2 days ago•GHSA-8RQH-VXPR-X77P
4.3

GHSA-8RQH-VXPR-X77P: Stored Cross-Site Scripting via MIME Type Spoofing in Plone REST API

A stored Cross-Site Scripting (XSS) vulnerability exists within plone.restapi, the REST API package for Plone content management system. By supplying a spoofed input MIME type (text/x-html-safe), an attacker can mislead the rendering layer (plone.app.textfield) into assuming that the supplied content is already sanitized. This causes the system to skip the safe_html transform, allowing arbitrary JavaScript to execute in the victim's browser when they view the compromised page.

Amit Schendel
Amit Schendel
11 views•7 min read
•3 days ago•CVE-2026-11400
8.0

CVE-2026-11400: Privilege Escalation via Untrusted Search Path in AWS Advanced JDBC Wrapper

An untrusted search path vulnerability in the GlobalDatabasePlugin component of the AWS Advanced JDBC Wrapper for Amazon Aurora PostgreSQL allows authenticated, low-privilege database users to hijack administrative session queries. By defining a custom function in a writable schema such as the public schema, an attacker can hijack queries executed automatically during driver-level topology detection. When a highly privileged database user connects to the database utilizing an affected version of the wrapper, the custom function executes under their security context, enabling remote privilege escalation to rds_superuser.

Alon Barad
Alon Barad
13 views•6 min read
•3 days ago•CVE-2026-27771
8.2

CVE-2026-27771: Authentication Bypass and Information Disclosure in Gitea Container and Composer Registries

CVE-2026-27771 represents a critical security flaw in Gitea and Forgejo (up to and including version 1.26.1) involving missing authorization checks (CWE-862). Unauthenticated remote attackers can query, enumerate, and download private container images from the OCI-compliant container registry. Additionally, unauthorized users can retrieve private or internal source repository URLs via the Composer package registry metadata API. A public proof-of-concept exists, and threat metrics indicate highly active scanning and exploitation risks.

Alon Barad
Alon Barad
46 views•7 min read