Skip to content

Update module github.com/traefik/traefik/v2 to v2.11.25 [SECURITY] #218

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Dec 2, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
github.com/traefik/traefik/v2 v2.11.10 -> v2.11.25 age adoption passing 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.

CVE-2025-22868

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)

Release Notes

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

v2.11.25

Compare Source

Important: Please read the migration guide.

CVE's fixed:

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 (2024-10-28)

All Commits

Bug fixes:

Documentation:

  • [k8s,k8s/gatewayapi] Fix broken links in Kubernetes Gateway provider page (#​11188 by mloiseleur)

Misc:

v2.11.13 (2024-10-28)

All Commits

Bug fixes:

  • [middleware,service] Panic on aborted requests to properly close the connection (#​11129 by tonybart1337)

Documentation:

v3.2.0-rc2 (2024-10-09)

All Commits

Enhancements:

Bug fixes:

  • [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)

Documentation:

Misc:

v3.1.6 (2024-10-09)

All Commits

Bug fixes:

Misc:

v2.11.12 (2024-10-09)

All Commits

Bug fixes:

Documentation:

v3.2.0-rc1 (2024-10-02)

All Commits

Enhancements:

  • [acme] Remove same email requirement for certresolvers (#​11019 by Emrio)
  • [acme] Add support for custom CA certificates by certificate resolver (#​10816 by ldez)
  • [acme] Add 30 day certificatesDuration step (#​10970 by luker983)
  • [docker] Support HT

Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

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.

@renovate renovate bot added the dependencies Renovate dependency updates label Dec 2, 2024
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):

  • 17 additional dependencies were updated

Details:

Package Change
github.com/cloudflare/cloudflare-go v0.104.0 -> v0.115.0
github.com/goccy/go-json v0.10.3 -> v0.10.5
github.com/google/go-cmp v0.6.0 -> v0.7.0
github.com/gorilla/websocket v1.5.0 -> v1.5.3
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.27.0 -> v0.36.0
golang.org/x/mod v0.21.0 -> v0.23.0
golang.org/x/net v0.29.0 -> v0.38.0
golang.org/x/oauth2 v0.21.0 -> v0.28.0
golang.org/x/sync v0.8.0 -> v0.12.0
golang.org/x/sys v0.25.0 -> v0.31.0
golang.org/x/term v0.24.0 -> v0.30.0
golang.org/x/text v0.18.0 -> v0.23.0
golang.org/x/time v0.6.0 -> v0.11.0
golang.org/x/tools v0.25.0 -> v0.30.0
google.golang.org/protobuf v1.34.2 -> v1.36.5

@renovate renovate bot changed the title Update module github.com/traefik/traefik/v2 to v2.11.14 [SECURITY] 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 e6241ab to 92b1093 Compare December 17, 2024 17:53
@renovate renovate bot changed the title Update module github.com/traefik/traefik/v2 to v2.11.15 [SECURITY] Update module github.com/traefik/traefik/v2 to v2.11.15 [SECURITY] - autoclosed Mar 11, 2025
@renovate renovate bot closed this Mar 11, 2025
@renovate renovate bot deleted the renovate/go-github.com-traefik-traefik-v2-vulnerability branch March 11, 2025 14:23
@renovate renovate bot changed the title Update module github.com/traefik/traefik/v2 to v2.11.15 [SECURITY] - autoclosed Update module github.com/traefik/traefik/v2 to v2.11.15 [SECURITY] Mar 11, 2025
@renovate renovate bot reopened this Mar 11, 2025
@renovate renovate bot force-pushed the renovate/go-github.com-traefik-traefik-v2-vulnerability branch from c04474a to 92b1093 Compare March 11, 2025 19:41
@renovate renovate bot force-pushed the renovate/go-github.com-traefik-traefik-v2-vulnerability branch from 92b1093 to 65ee243 Compare April 18, 2025 22:51
@renovate renovate bot changed the title Update module github.com/traefik/traefik/v2 to v2.11.15 [SECURITY] 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 65ee243 to c2970b7 Compare May 28, 2025 20:21
@renovate renovate bot changed the title Update module github.com/traefik/traefik/v2 to v2.11.24 [SECURITY] Update module github.com/traefik/traefik/v2 to v2.11.25 [SECURITY] May 28, 2025
@renovate renovate bot changed the title Update module github.com/traefik/traefik/v2 to v2.11.25 [SECURITY] 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 changed the title Update module github.com/traefik/traefik/v2 to v2.11.25 [SECURITY] - autoclosed 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 318d7b7 to c2970b7 Compare May 31, 2025 09:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Renovate dependency updates
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants