CVE-2024-39315 json
Pomerium exposed OAuth2 access and ID tokens in user info endpoint response
published 2024-07-02 2 y ago modified 2026-09-10 1 mo ago also EUVD-2024-2413 , GHSA-rrqr-7w59-637v , GO-2024-2965
- cvss
- 5.7
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 36%
- public exploits
- 0
- none known
Summary
Pomerium is an identity and context-aware access proxy. Prior to version 0.26.1, the Pomerium user info page (at `/.pomerium`) unintentionally included serialized OAuth2 access and ID tokens from the logged-in user's session. These tokens are not intended to be exposed to end users. This issue may be more severe in the presence of a cross-site scripting vulnerability in an upstream application proxied through Pomerium. If an attacker could insert a malicious script onto a web page proxied through Pomerium, that script could access these tokens by making a request to the `/.pomerium` endpoint. Upstream applications that authenticate only the ID token may be vulnerable to user impersonation using a token obtained in this manner. Note that an OAuth2 access token or ID token by itself is not sufficient to hijack a user's Pomerium session. Upstream applications should not be vulnerable to user impersonation via these tokens provided the application verifies the Pomerium JWT for each request, the connection between Pomerium and the application is secured by mTLS, or the connection between Pomerium and the application is otherwise secured at the network layer. The issue is patched in Pomerium v0.26.1. No known workarounds are available.
Patch / fix
- go github.com/pomerium/pomerium 0.26.1
- pomerium pomerium 0.26.1
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 y ago
Exploit prediction
0.42% chance of exploitation in the next 30 days, higher than 36% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.7 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N |
| GitHub | 3.1 | 5.7 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N |
| NVD | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | github.com/pomerium/pomerium | <0.26.1 |
0.26.1 |
Affected products
- pomerium pomerium
Classification
- Weakness
-
- CWE-201 Insertion of Sensitive Information Into Sent Data
References
-
github.com
/pomerium/pomerium/commit/4c7c4320afb2ced70ba19b46de1ac4383f3daa48
web, patch
-
github.com
/pomerium/pomerium/security/advisories/GHSA-rrqr-7w59-637v
web, vendor-advisory, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2024-39315
advisory
-
github.com
/pomerium/pomerium
package
Sources
- CVE List CVE-2024-39315
- GitHub Advisory GHSA-rrqr-7w59-637v
- NVD CVE-2024-39315
- OSV GO-2024-2965
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.