Arbitrary redirects under /new endpoint
Moderate severity
GitHub Reviewed
Published
May 18, 2021
in
prometheus/prometheus
•
Updated Feb 1, 2023
Package
Affected versions
>= 2.23.0, < 2.26.1
= 2.27.0
Patched versions
2.26.1
2.27.1
Description
Reviewed
May 19, 2021
Published by the National Vulnerability Database
May 19, 2021
Published to the GitHub Advisory Database
Feb 15, 2022
Last updated
Feb 1, 2023
Impact
In 2.23.0, Prometheus changed its default UI to the New ui. To ensure a seamless transition, the URL's prefixed by /new redirect to /.
Due to a bug in the code, it is possible for an attacker to craft an URL that can redirect to any other URL, in the /new endpoint.
If a user visits a prometheus server with a specially crafted address (e.g.:
http://127.0.0.1:9090/new/new<url>
), they can be redirected to an arbitrary URL.e.g. if a user visits http://127.0.0.1:9090/new/newhttp://www.google.com/, they will be redirected to http://google.com.
Patches
The issue will be patched in 2.26.1 and 2.27.1 releases.
In 2.28.0, the /new endpoint will be removed completely.
Workarounds
The workaround is to disable access to /new via a reverse proxy in front of Prometheus.
Note: Users who use a
--web.external-url=
flag with a path (e.g.--web.external-url=http://example.com/prometheus
) are not affected.For more information
If you have any questions or comments about this advisory, please use our community channels (https://prometheus.io/community).
Our security policy is available at https://prometheus.io/docs/operating/security/
References