Skip to content

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Dec 2, 2024

Note

Mend has cancelled the proposed renaming of the Renovate GitHub app being renamed to mend[bot].

This notice will be removed on 2025-10-07.


This PR contains the following updates:

Package Change Age Confidence
github.com/traefik/traefik/v2 v2.11.9 -> v2.11.28 age confidence

GitHub Vulnerability Alerts

CVE-2024-52003

Impact

There is a vulnerability in Traefik that allows the client to provide the X-Forwarded-Prefix header from an untrusted source.

Patches

Workarounds

No workaround.

For more information

If you have any questions or comments about this advisory, please open an issue.

Original Description

Summary

The previously reported open redirect (GHSA-6qq8-5wq3-86rp) is not fixed correctly. The safePrefix function can be tricked to return an absolute URL.

Details

The Traefik API dashboard component tries to validate that the value of the header X-Forwarded-Prefix is a site relative path:

http.Redirect(resp, req, safePrefix(req)+"/dashboard/", http.StatusFound)
func safePrefix(req *http.Request) string {
	prefix := req.Header.Get("X-Forwarded-Prefix")
	if prefix == "" {
		return ""
	}

	parse, err := url.Parse(prefix)
	if err != nil {
		return ""
	}

	return parse.Path
}

PoC

An attacker can bypass this by sending the following payload:

curl -v 'http://traefik.localhost' -H 'X-Forwarded-Prefix: %0d//a.com'
[...]
> HTTP/1.1 302 Found
> Location: //a.com/dashboard/

or similar:

curl -v 'http://traefik.localhost' -H 'X-Forwarded-Prefix: %2f%2fa.com'
[...]
> HTTP/1.1 302 Found
> Location: //a.com/dashboard/

Impact

Similar to the previously reported bug. In cache poisoning scenarios this may be exploitable.

GHSA-hxr6-2p24-hf98

There is a potential vulnerability in Traefik managing HTTP/3 connections.

More details in the CVE-2024-53259.

Patches

Workarounds

No workaround

For more information

If you have any questions or comments about this advisory, please open an issue.

GHSA-3wqc-mwfx-672p

Summary

We have encountered a security vulnerability being reported by our scanners for Traefik 2.11.22.

Details

It seems to target oauth2/jws library.

PoC

No steps to replicate this vulnerability

Impact

We have a strict control on security and we always try to stay up-to-date with the fixes received for third-party solutions.

Patches

GHSA-5423-jcjm-2gpv

Summary

net/http: request smuggling through invalid chunked data: The net/http package accepts data in the chunked transfer encoding containing an invalid chunk-size line terminated by a bare LF. When used in conjunction with a server or proxy which incorrectly interprets a bare LF in a chunk extension as part of the extension, this could permit request smuggling. [CVE-2025-22871] Vendor Affected Components: Go: 1.23.x < 1.23.8

More Details: CVE-2025-22871

Patches

CVE-2025-32431

Impact

There is a potential vulnerability in Traefik managing the requests using a PathPrefix, Path or PathRegex matcher.

When Traefik is configured to route the requests to a backend using a matcher based on the path, if the URL contains a /../ in its path, it’s possible to target a backend, exposed using another router, by-passing the middlewares chain.

Example

apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: my-service
spec:
  routes:
    - match: PathPrefix(‘/service’)
      kind: Rule
      services:
        - name: service-a
          port: 8080
      middlewares:
        - name: my-middleware-a
    - match: PathPrefix(‘/service/sub-path’)
      kind: Rule
      services:
        - name: service-a
          port: 8080

In such a case, the request http://mydomain.example.com/service/sub-path/../other-path will reach the backend my-service-a without operating the middleware my-middleware-a unless the computed path is http://mydomain.example.com/service/other-path and should be computes by the first router (operating my-middleware-a).

Patches

Workaround

Add a PathRegexp rule to the matcher to prevent matching a route with a /../ in the path.

Example:

match: PathPrefix(`/service`) && !PathRegexp(`(?:(/\.\./)+.*)`)

For more information

If you have any questions or comments about this advisory, please open an issue.

CVE-2025-47952

Impact

There is a potential vulnerability in Traefik managing the requests using a PathPrefix, Path or PathRegex matcher.

When Traefik is configured to route the requests to a backend using a matcher based on the path, if the URL contains a URL encoded string in its path, it’s possible to target a backend, exposed using another router, by-passing the middlewares chain.

Example

apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: my-service
spec:
  routes:
    - match: PathPrefix(‘/service’)
      kind: Rule
      services:
        - name: service-a
          port: 8080
      middlewares:
        - name: my-middleware-a
    - match: PathPrefix(‘/service/sub-path’)
      kind: Rule
      services:
        - name: service-a
          port: 8080

In such a case, the request http://mydomain.example.com/service/sub-path/%2e%2e/other-path will reach the backend my-service-a without operating the middleware my-middleware-a unless the computed path is http://mydomain.example.com/service/other-path and should be computes by the first router (operating my-middleware-a).

Patches

For more information

If you have any questions or comments about this advisory, please open an issue.

Original Description

Summary

Path traversal with "/../" using URL encodings ("/%2e%2e") allows for circumventing routing rules.

Details

When having defined a route, you can path traverse using the URL encoded variant of /../ and reach endpoints that are not made publicly available. This issue has been found and fixed earlier with regular /../ and has been fixed in this CVE. This URL encoding trick works around that
https://nvd.nist.gov/vuln/detail/CVE-2025-32431

Simply implementing a check on the URL encoding won't be sufficient as path traversal can take numerous formats. See examples here:
https://book.hacktricks.wiki/en/pentesting-web/file-inclusion/index.html

PoC

Setup a service with two endpoints: "/public" and "/private", which returns a 200 OK for both
Setup a Traefik proxy with a single route which points to the service using path /public

Regular requests to traefik /public will return 200 OK and to /private should return 404 (response by Traefik)
When making a request to /public/%2e%2e/private you should receive a 200 OK.

Impact

Impacts all traefik implementations with path prefix routes that expose only part of the downstream api

Suggestion

Provide configuration property which disables all path traversals. Steps:

  1. Decode URL
  2. Evaluate and construct relative path (do traversal before route evaluation)
  3. Compare relative/evaluated path to configured routes (PathPrefix/pathRegexp)

CVE-2025-54386

Summary

A path traversal vulnerability was discovered in WASM Traefik’s plugin installation mechanism. By supplying a maliciously crafted ZIP archive containing file paths with ../ sequences, an attacker can overwrite arbitrary files on the system outside of the intended plugin directory. This can lead to remote code execution (RCE), privilege escalation, persistence, or denial of service.
✅ After investigation, it is confirmed that no plugins on the Catalog were affected. There is no known impact.

Details

The vulnerability resides in the WASM plugin extraction logic, specifically in the unzipFile function (/plugins/client.go). The application constructs file paths during ZIP extraction using filepath.Join(destDir, f.Name) without validating or sanitizing f.Name. If the ZIP archive contains entries with ../, the resulting path can escape the intended directory, allowing writes to arbitrary locations on the host filesystem.

Attack Requirements

There are several requirements needed to make this attack possible:

  • The Traefik server should be deployed with plugins enabled with a WASM plugin (yaegi plugins are not impacted).
  • The attacker should have write access to a remote plugin asset loaded by the Traefik server
  • The attacker should craft a malicious version of this plugin

Warning

As clearly stated in the documentation, plugins are experimental in Traefik, and unsafe plugins could damage your infrastructure:

Experimental Features
Plugins can change the behavior of Traefik in unforeseen ways. Exercise caution when adding new plugins to production Traefik instances.

Impact

This vulnerability did not affect any plugin from the catalog. There is no known impact.
Additionally, the catalog will also prevent any compromised plugin to be available across all Traefik versions.

This vulnerability could allow an attacker to perform arbitrary file write outside the intended plugin extraction directory by crafting a malicious ZIP archive that includes ../ (directory traversal) in file paths.


Release Notes

traefik/traefik (github.com/traefik/traefik/v2)

v2.11.28

Compare Source

All Commits

Bug fixes:

Documentation:

  • [k8s/crd,k8s] Remove all mentions of ordering for TLSOption CurvePreferences field (#​11924 by jnoordsij)

v2.11.27

Compare Source

All Commits

Bug fixes:

v2.11.26

Compare Source

All Commits

Bug fixes:

Documentation:

v2.11.25

Compare Source

All Commits

Bug fixes:

Documentation:

v2.11.24

Compare Source

All Commits

Bug fixes:

Documentation:

v2.11.23

Compare Source

All Commits

Release canceled.

v2.11.22

Compare Source

All Commits

Bug fixes:

Documentation:

  • [accesslogs] Remove documentation for OriginStatusLine and DownstreamStatusLine accessLogs fields (#​11599 by rtribotte)
  • [middleware] Clarifies that retry middleware uses TCP, not HTTP status codes (#​11603 by geraldcroes)
  • [redis] Add tip for dynamic configuration updates of Redis (#​11577 by Alanxtl)
  • Add Security Support (#​11610 by nmengin)

v2.11.21

Compare Source

All Commits

Bug fixes:

v3.3.3 (2025-01-31)

All Commits

Bug fixes:

Misc:

v2.11.20 (2025-01-31)

All Commits

Bug fixes:

Documentation:

v2.11.19 (2025-01-29)

All Commits

Bug fixes:

Documentation:

v3.3.2 (2025-01-14)

All Commits

Bug fixes:

Documentation:

  • [acme] Fix deprecated dnsChallenge propagation logging and documentation (#​11433 by thomscode)
  • [acme] Add missing trailing s to propagation.delayBeforeCheck option (#​11417 by jspiers)

Misc:

v3.3.1 (2025-01-07)

All Commits

Bug fixes:

  • [websocket,server] Disable http2 connect setting for websocket by default (#​11408 by rtribotte)

v3.2.5 (2025-01-07)

All Commits

Bug fixes:

  • [websocket,server] Disable http2 connect setting for websocket by default (#​11408 by rtribotte)

v2.11.18 (2025-01-07)

All Commits

Bug fixes:

  • [websocket,server] Disable http2 connect setting for websocket by default (#​11412 by rtribotte)

v3.3.0 (2025-01-06)

All Commits

Enhancements:

  • [acme] Add options to control ACME propagation checks (#​11241 by ldez)
  • [api] Add support dump API endpoint (#​11328 by mmatur)
  • [http] Set Host header in HTTP provider request (#​11237 by nikonhub)
  • [k8s/crd,k8s] Make the IngressRoute kind optional (#​11177 by skirtan1)
  • [k8s/ingress,sticky-session,k8s/crd,k8s] Support serving endpoints (#​11121 by BZValoche)
  • [logs,accesslogs] OpenTelemetry Logs and Access Logs (#​11319 by rtribotte)
  • [logs,accesslogs] Add experimental flag for OTLP logs integration (#​11335 by kevinpollet)
  • [metrics,tracing,accesslogs] Manage observability at entrypoint and router level (#​11308 by rtribotte)
  • [middleware,authentication] Add an option to preserve the ForwardAuth Server Location header (#​11318 by Nelwhix)
  • [middleware,authentication] Only calculate basic auth hashes once for concurrent requests (#​11143 by michelheusschen)
  • [middleware,authentication] Send request body to authorization server for forward auth (#​11097 by kyo-ke)
  • [plugins] Add AbortOnPluginFailure option to abort startup on plugin load failure (#​11228 by bmagic)
  • [sticky-session] Configurable path for sticky cookies (#​11166 by IIpragmaII)
  • [webui,api] Configurable API & Dashboard base path (#​11250 by rtribotte)

Bug fixes:

Documentation:

Misc:

v3.2.4 (2025-01-06)

All Commits

Bug fixes:

  • [k8s/gatewayapi] Support empty value for core Kubernetes API group (#​11386 by rtribotte)
  • [tcp,k8s/crd] Pass TLS bool from IngressRouteTCP to TCPService (#​11343 by lipmem)
  • [tls] Upgrade github.com/spiffe/go-spiffe/v2 to v2.4.0 (#​11385 by mmatur)
  • Remove duplicate github.com/coreos/go-systemd dependency (#​11354 by Juneezee)

Documentation:

Misc:

v2.11.17 (2025-01-06)

All Commits

Bug fixes:

Documentation:

v3.3.0-rc2 (2024-12-20)

All Commits

Bug fixes:

v3.3.0-rc1 (2024-12-16)

All Commits

Enhancements:

  • [acme] Add options to control ACME propagation checks (#​11241 by ldez)
  • [api] Add support dump API endpoint (#​11328 by mmatur)
  • [http] Set Host header in HTTP provider request (#​11237 by nikonhub)
  • [k8s/crd,k8s] Make the IngressRoute kind optional (#​11177 by skirtan1)
  • [logs,accesslogs] OpenTelemetry Logs and Access Logs (#​11319 by rtribotte)
  • [logs,accesslogs] Add experimental flag for OTLP logs integration (#​11335 by kevinpollet)
  • [metrics,tracing,accesslogs] Manage observability at entrypoint and router level (#​11308 by rtribotte)
  • [middleware,authentication] Add an option to preserve the ForwardAuth Server Location header (#​11318 by Nelwhix)
  • [middleware,authentication] Only calculate basic auth hashes once for concurrent requests (#​11143 by michelheusschen)
  • [middleware,authentication] Send request body to authorization server for forward auth (#​11097 by kyo-ke)
  • [plugins] Add AbortOnPluginFailure option to abort startup on plugin load failure (#​11228 by bmagic)
  • [sticky-session] Configurable path for sticky cookies (#​11166 by IIpragmaII)
  • [sticky-session,k8s/ingress,k8s/crd,k8s] Support serving endpoints (#​11121 by BZValoche)
  • [webui,api] Configurable API & Dashboard base path (#​11250 by rtribotte)

Misc:

v3.2.3 (2024-12-16)

All Commits

Documentation:

Misc:

v2.11.16 (2024-12-16)

All Commits

Bug fixes:

v3.2.2 (2024-12-10)

All Commits

Bug fixes:

Documentation:

v2.11.15 (2024-12-06)

All Commits

Bug fixes:

v3.2.1 (2024-11-20)

All Commits

Bug fixes:

Documentation:

  • [acme,tls] Document how to use Certificates of cert-manager (#​11053 by mloiseleur)
  • [docker/swarm] Add tips about the use of docker in dynamic configuration for swarm provider (#​11207 by webash)
  • [middleware] Add Compress middleware to migration guide (#​11229 by logica0419)

Misc:

v2.11.14 (2024-11-20)

All Commits

Bug fixes:

Documentation:

v3.2.0 (2024-10-28)

All Commits

Enhancements:

Bug fixes:

  • [k8s,k8s/gatewayapi] Ensuring Gateway API reflected Traefik resource name unicity (#​11222 by rtribotte)
  • [k8s,k8s/gatewayapi] Preserve GRPCRoute filters order (#​11199 by kevinpollet)
  • [k8s,k8s/gatewayapi] Support http and https appProtocol for Kubernetes Service (#​11176 by WillDaSilva)
  • [k8s,k8s/gatewayapi] Avoid updating Accepted status for routes matching no Gateways (#​11170 by rtribotte)
  • [k8s,k8s/gatewayapi] Do not update gateway status when not selected by a gateway class (#​11169 by kevinpollet)
  • [service] Detect and drop broken conns in the fastproxy pool (#​11212 by kevinpollet)

Documentation:

Misc:

v3.1.7 (20


Configuration

📅 Schedule: Branch creation - "" in timezone Europe/London, Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copy link
Contributor Author

renovate bot commented Dec 2, 2024

ℹ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 13 additional dependencies were updated

Details:

Package Change
golang.org/x/oauth2 v0.24.0 -> v0.28.0
cloud.google.com/go/compute/metadata v0.3.0 -> v0.6.0
github.com/go-jose/go-jose/v4 v4.0.2 -> v4.0.5
github.com/miekg/dns v1.1.59 -> v1.1.64
github.com/traefik/paerser v0.2.1 -> v0.2.2
golang.org/x/crypto v0.26.0 -> v0.36.0
golang.org/x/mod v0.18.0 -> v0.23.0
golang.org/x/net v0.27.0 -> v0.38.0
golang.org/x/sys v0.23.0 -> v0.31.0
golang.org/x/term v0.23.0 -> v0.30.0
golang.org/x/text v0.17.0 -> v0.23.0
golang.org/x/tools v0.22.0 -> v0.30.0
google.golang.org/protobuf v1.33.0 -> v1.36.5

@renovate renovate bot force-pushed the renovate/go-github.com-traefik-traefik-v2-vulnerability branch from 8081fda to 5308891 Compare December 17, 2024 16:32
@renovate renovate bot changed the title fix(deps): update module github.com/traefik/traefik/v2 to v2.11.14 [security] fix(deps): update module github.com/traefik/traefik/v2 to v2.11.15 [security] Dec 17, 2024
@renovate renovate bot force-pushed the renovate/go-github.com-traefik-traefik-v2-vulnerability branch from 5308891 to d500c10 Compare April 18, 2025 21:40
@renovate renovate bot changed the title fix(deps): update module github.com/traefik/traefik/v2 to v2.11.15 [security] fix(deps): update module github.com/traefik/traefik/v2 to v2.11.24 [security] Apr 18, 2025
@renovate renovate bot force-pushed the renovate/go-github.com-traefik-traefik-v2-vulnerability branch from d500c10 to 5895e98 Compare May 28, 2025 19:51
@renovate renovate bot changed the title fix(deps): update module github.com/traefik/traefik/v2 to v2.11.24 [security] fix(deps): update module github.com/traefik/traefik/v2 to v2.11.25 [security] May 28, 2025
@renovate renovate bot changed the title fix(deps): update module github.com/traefik/traefik/v2 to v2.11.25 [security] fix(deps): update module github.com/traefik/traefik/v2 to v2.11.25 [security] - autoclosed May 31, 2025
@renovate renovate bot closed this May 31, 2025
@renovate renovate bot deleted the renovate/go-github.com-traefik-traefik-v2-vulnerability branch May 31, 2025 06:12
@renovate renovate bot changed the title fix(deps): update module github.com/traefik/traefik/v2 to v2.11.25 [security] - autoclosed fix(deps): update module github.com/traefik/traefik/v2 to v2.11.25 [security] May 31, 2025
@renovate renovate bot reopened this May 31, 2025
@renovate renovate bot force-pushed the renovate/go-github.com-traefik-traefik-v2-vulnerability branch from 6e0d7ae to 5895e98 Compare May 31, 2025 09:57
@renovate renovate bot force-pushed the renovate/go-github.com-traefik-traefik-v2-vulnerability branch from 5895e98 to 680dd3f Compare August 1, 2025 22:08
@renovate renovate bot changed the title fix(deps): update module github.com/traefik/traefik/v2 to v2.11.25 [security] fix(deps): update module github.com/traefik/traefik/v2 to v2.11.28 [security] Aug 1, 2025
Copy link
Contributor Author

renovate bot commented Aug 1, 2025

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: go.sum
Command failed: go get -t ./...
go: module github.com/traefik/traefik/[email protected] requires go >= 1.24.0; switching to go1.24.6
go: downloading go1.24.6 (linux/amd64)
go: download go1.24.6: golang.org/[email protected]: verifying module: checksum database disabled by GOSUMDB=off

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant