diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b0b79431..b6b4c4071 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +## 2.27.1 / 2021-05-18 + +This release contains a bug fix for a security issue in the API endpoint. An +attacker can craft a special URL that redirects a user to any endpoint via an +HTTP 302 response. See the [security advisory][GHSA-vx57-7f4q-fpc7] for more details. + +[GHSA-vx57-7f4q-fpc7]:https://github.com/prometheus/prometheus/security/advisories/GHSA-vx57-7f4q-fpc7 + +This vulnerability has been reported by Aaron Devaney from MDSec. + +* [BUGFIX] SECURITY: Fix arbitrary redirects under the /new endpoint (CVE-2021-29622) + ## 2.27.0 / 2021-05-12 * [FEATURE] Promtool: Retroactive rule evaluation functionality. #7675 diff --git a/VERSION b/VERSION index a5f3e61bd..f0465234b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.27.0 +2.27.1 diff --git a/web/web.go b/web/web.go index bdc5c44e5..374627a9e 100644 --- a/web/web.go +++ b/web/web.go @@ -354,7 +354,7 @@ func New(logger log.Logger, o *Options) *Handler { // Redirect the original React UI's path (under "/new") to its new path at the root. router.Get("/new/*path", func(w http.ResponseWriter, r *http.Request) { p := route.Param(r.Context(), "path") - http.Redirect(w, r, path.Join(o.ExternalURL.Path, strings.TrimPrefix(p, "/new"))+"?"+r.URL.RawQuery, http.StatusFound) + http.Redirect(w, r, path.Join(o.ExternalURL.Path, p)+"?"+r.URL.RawQuery, http.StatusFound) }) router.Get("/classic/alerts", readyf(h.alerts))