CVE-2026-82755
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.
Scoring
- Severity
- MEDIUM
- CVSS base score
- 6.3
- CVSS vector
- CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:L/SI:L/SA:N
- EPSS probability
- 0.37%
- CWE
- CWE-524
- Published
- 2026-09-07
- Last modified
- 2026-09-08
Affected products
- ash-project ash_authentication_oauth2_server
- ash-project ash_authentication_oauth2_server
Weakness type
Related vulnerabilities
- CVE-2026-84933 — undici vulnerable to cross-user cookie disclosure via Set-Cookie caching in shared caches
- CVE-2026-15743 — Catalyst::Plugin::Static::Simple versions through 0.38 for Perl mark responses as publicly cacheable
- CVE-2026-54625 — django CMS: Page cache ignores plugin-declared Vary headers (disclosure & poisoning)
- CVE-2026-59903 — Netty: Cache Poisoning and Information Disclosure via CORS Vary Header Overwrite
- CVE-2026-71316 — Nuxt runtime payload cache discloses another user's SSR data across users and to unauthenticated clients
- CVE-2026-25703 — Potential information leakage from manager /network/graph API in NeuVector
- CVE-2026-14643 — undici vulnerable to cross-user information disclosure via whitespace around equals in Cache-Control directives
- CVE-2026-64648 — Next.js: Response Body Cache Confusion for Requests Containing Bodies