CVE-2026-82755
MediumCVSS 6.3Summary
Vulnerability in ash_authentication_oauth2_server allows a shared HTTP cache to serve one tenant's OAuth discovery metadata to another tenant's clients. Responses with metadata are marked as Cache-Control: public without a Vary header, causing responses to be cached and served to other tenants.
Risk Assessment
Clients may receive incorrect metadata, potentially leading to sending authorization codes and secrets to the wrong token endpoint and validating tokens against wrong keys.
Recommendation
Upgrade ash_authentication_oauth2_server to version 0.3.1 or later, which includes a fix that adds a Vary header or appropriate cache directives.
Other vulnerabilities in ash_authentication_oauth2_server
See all- CVE-2026-82758Medium
Vulnerability in ash_authentication_oauth2_server allows an unauthenticated attacker to register OAuth clients even when Dynamic Client Registration is gated by an initial access token. The resolve_secret/3 function treats any return other than {:ok, _} or :error as a valid secret, allowing bypass of protections.
- CVE-2026-82757Medium
SSRF vulnerability in ash_authentication_oauth2_server allows an attacker who controls a client metadata URL and its DNS to make the server connect to internal or loopback addresses. The public_ip?/1 function incorrectly classifies certain address ranges as public, allowing policy bypass.
- CVE-2026-82756Medium
Vulnerability in ash_authentication_oauth2_server allows an unauthenticated attacker to inject arbitrary authentication parameters into the WWW-Authenticate challenge header. The resource_metadata value is interpolated without proper escaping, allowing header modification and redirecting clients to a malicious authorization server.
- CVE-2026-82754Medium
Vulnerability in ash_authentication_oauth2_server exposes state-changing OAuth endpoints under an unintended URL prefix, bypassing controls scoped to the canonical prefix. Routes are mounted under both /oauth and /.well-known, allowing access to /register, /token, and /revoke via alternative paths.
- CVE-2026-82753High
Resource exhaustion vulnerability in ash_authentication_oauth2_server. An unauthenticated attacker can exhaust database storage and memory by sending requests to the /authorize endpoint with many distinct client_id URLs, creating permanent client rows and caching documents without limits.
Original NVD description (English source)
Use of Cache Containing Sensitive Information vulnerability in ash-project ash_authentication_oauth2_server allows a shared HTTP cache to serve one tenant's OAuth discovery metadata to another tenant's clients. The RFC 8414 and RFC 9728 metadata endpoints in AshAuthentication.Phoenix.Oauth2Server.ProtocolRouter return tenant-specific values (issuer, authorization_endpoint, token_endpoint, jwks_uri) when a tenant is set, but sent them with Cache-Control: public, max-age=3600 and no Vary. When the tenant is derived from something other than the URL (a header or the Host) and a shared cache sits in front, the cache key is the URL alone, so a stored response for one tenant is served to another for up to an hour. Affected clients may then send authorization codes and secrets to the wrong tenant's token endpoint and validate tokens against the wrong keys. This issue affects ash_authentication_oauth2_server: from 0.1.3 before 0.3.1.

