CVE-2024-52307
Reported by @mgerstner
Timing attack due to a lack of constant time comparison for metrics view
Summary
Due to the usage of a non-constant time comparison for the /-/metrics/
endpoint it was possible to brute-force the SECRET_KEY
, which is used to authenticate the endpoint. The /-/metrics/
endpoint returns Prometheus metrics and is not intended to be accessed directly, as the Go proxy running in the authentik server container fetches data from this endpoint and serves it on a separate port (9300 by default), which can be scraped by Prometheus without being exposed publicly.
Patches
authentik 2024.8.5 and 2024.10.3 fix this issue, for other versions the workaround below can be used.
Impact
With enough attempts the SECRET_KEY
of the authentik installation can be brute-forced, which can be used to sign new or modify existing cookies.
Workarounds
Since the /-/metrics/
endpoint is not intended to be accessed publicly, requests to the endpoint can be blocked by the reverse proxy/load balancer used in conjunction with authentik.
For example for nginx:
location /-/metrics/ {
deny all;
return 404;
}
For more information
If you have any questions or comments about this advisory:
- Email us at security@goauthentik.io.