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.
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.
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.
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/