CVE-2024-39315

5.7 MEDIUM

📋 TL;DR

Pomerium versions before 0.26.1 expose OAuth2 access and ID tokens on the user info page, allowing potential token theft. This affects organizations using Pomerium as an identity-aware proxy. Attackers could steal tokens via cross-site scripting in upstream applications.

💻 Affected Systems

Products:
  • Pomerium
Versions: All versions before 0.26.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in default configuration. Risk increases if upstream applications have XSS vulnerabilities.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers steal OAuth tokens via XSS in upstream apps, impersonate users in applications that only verify ID tokens, and potentially access sensitive resources.

🟠

Likely Case

Token exposure increases attack surface but requires XSS in upstream apps for exploitation. Most properly configured applications using Pomerium JWTs or mTLS remain protected.

🟢

If Mitigated

Minimal impact if applications verify Pomerium JWTs per request, use mTLS between Pomerium and apps, or have network-layer security.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires XSS vulnerability in upstream application to access tokens from /.pomerium endpoint.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.26.1

Vendor Advisory: https://github.com/pomerium/pomerium/security/advisories/GHSA-rrqr-7w59-637v

Restart Required: Yes

Instructions:

1. Backup current configuration. 2. Update Pomerium to version 0.26.1 or later. 3. Restart Pomerium service. 4. Verify the fix by checking version and testing user info page.

🔧 Temporary Workarounds

No official workarounds

all

Vendor states no known workarounds available

🧯 If You Can't Patch

  • Ensure upstream applications verify Pomerium JWT for every request
  • Implement mTLS between Pomerium and all upstream applications

🔍 How to Verify

Check if Vulnerable:

Check Pomerium version: if below 0.26.1, system is vulnerable. Access /.pomerium endpoint while authenticated to see if tokens are exposed.

Check Version:

pomerium version

Verify Fix Applied:

After updating to 0.26.1+, verify version and confirm /.pomerium endpoint no longer exposes OAuth tokens.

📡 Detection & Monitoring

Log Indicators:

  • Unusual access patterns to /.pomerium endpoint
  • Multiple token refresh requests from same user

Network Indicators:

  • Unexpected requests to /.pomerium from upstream application domains

SIEM Query:

source="pomerium" AND (uri_path="/.pomerium" OR message="token" OR message="OAuth")

🔗 References

📤 Share & Export