CVE-2019-17195

9.8 CRITICAL

📋 TL;DR

CVE-2019-17195 is a vulnerability in Connect2id Nimbus JOSE+JWT library where uncaught exceptions during JWT parsing can cause application crashes or authentication bypass. This affects applications using vulnerable versions of the library for JWT processing. The vulnerability could lead to denial of service or unauthorized access.

💻 Affected Systems

Products:
  • Connect2id Nimbus JOSE+JWT
Versions: All versions before 7.9
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using vulnerable versions of the library for JWT parsing is affected, regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Authentication bypass allowing unauthorized access to protected resources, or application crash leading to denial of service and potential information disclosure through error messages.

🟠

Likely Case

Application crashes causing denial of service, potentially exposing stack traces or error information that could aid attackers.

🟢

If Mitigated

Limited impact with proper exception handling and input validation in place, though underlying vulnerability remains.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires sending malformed JWTs to vulnerable endpoints. No public exploit code was found in references.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 7.9 and later

Vendor Advisory: https://connect2id.com/blog/nimbus-jose-jwt-7-9

Restart Required: Yes

Instructions:

1. Update Nimbus JOSE+JWT dependency to version 7.9 or later. 2. Update pom.xml or build.gradle with new version. 3. Rebuild and redeploy application. 4. Restart affected services.

🔧 Temporary Workarounds

Input validation wrapper

all

Implement custom JWT parsing with try-catch blocks to handle exceptions before they reach vulnerable library code.

🧯 If You Can't Patch

  • Implement network-level filtering to block malformed JWT tokens at WAF or load balancer
  • Add application-level exception handling to catch and log parsing errors without crashing

🔍 How to Verify

Check if Vulnerable:

Check dependency manifest (pom.xml, build.gradle, package.json) for Nimbus JOSE+JWT version below 7.9.

Check Version:

grep -i 'nimbus-jose-jwt' pom.xml build.gradle package.json 2>/dev/null || find . -name '*.jar' -exec jar tf {} \; 2>/dev/null | grep -i nimbus

Verify Fix Applied:

Verify dependency manifest shows version 7.9 or higher and test JWT parsing with malformed tokens.

📡 Detection & Monitoring

Log Indicators:

  • Uncaught exceptions in JWT parsing
  • Application crashes with JWT-related stack traces
  • Repeated authentication failures with malformed tokens

Network Indicators:

  • HTTP 500 errors on authentication endpoints
  • Unusual JWT token patterns in requests

SIEM Query:

source="application.logs" AND ("uncaught exception" AND "JWT") OR ("nimbus" AND "exception")

🔗 References

📤 Share & Export