Описание
OAuth2 Proxy's Health Check User-Agent Matching Bypasses Authentication in auth_request Mode
Impact
A configuration-dependent authentication bypass exists in OAuth2 Proxy.
Deployments are affected when all of the following are true:
- OAuth2 Proxy is used with an
auth_request-style integration (for example, nginxauth_request) --ping-user-agentis set or--gcp-healthchecksis enabled
In affected configurations, OAuth2 Proxy will treat a request with the configured health check User-Agent value as a successful health check regardless of the requested path. This allows an unauthenticated remote attacker to bypass authentication and access protected upstream resources without completing the normal login flow.
This issue does not affect deployments that do not use auth_request-style subrequests, or that do not enable --ping-user-agent/--gcp-healthchecks.
Patches
Users should upgrade to v7.15.2 or later once available. Deployments running versions prior to v7.15.2 should be considered affected if they use auth_request-style authentication together with --ping-user-agent or --gcp-healthchecks.
Workarounds
Users can mitigate this issue by:
- disabling
--gcp-healthchecks - removing any configured
--ping-user-agent - ensuring the reverse proxy does not forward client-controlled
User-Agentheaders to the OAuth2 Proxy auth subrequest - using path-based health checks only, on dedicated health check endpoints
Example nginx mitigation for the auth subrequest:
Пакеты
github.com/oauth2-proxy/oauth2-proxy/v7
< 7.15.2
7.15.2
github.com/oauth2-proxy/oauth2-proxy
<= 3.2.0
Отсутствует
Связанные уязвимости
OAuth2 Proxy is a reverse proxy that provides authentication using OAuth2 providers. Versions prior to 7.15.2 contain a configuration-dependent authentication bypass in deployments where OAuth2 Proxy is used with an auth_request-style integration (such as nginx auth_request) and either --ping-user-agent is set or --gcp-healthchecks is enabled. In affected configurations, OAuth2 Proxy treats any request with the configured health check User-Agent value as a successful health check regardless of the requested path, allowing an unauthenticated remote attacker to bypass authentication and access protected upstream resources. Deployments that do not use auth_request-style subrequests or that do not enable --ping-user-agent/--gcp-healthchecks are not affected. This issue is fixed in 7.15.2.
OAuth2 Proxy is a reverse proxy that provides authentication using OAu ...