CVE-2025-54887

9.1 CRITICAL

📋 TL;DR

This vulnerability in the Ruby JWE library allows attackers to brute-force authentication tags in encrypted JWEs, potentially leading to loss of confidentiality and the ability to craft arbitrary JWEs. All users of affected versions are impacted regardless of whether they use AES-GCM encryption, as the GHASH key may have been leaked. This could allow attackers to modify JWEs to decrypt to arbitrary values or recover encryption keys.

💻 Affected Systems

Products:
  • ruby-jwe gem
Versions: 1.1.0 and below
Operating Systems: All operating systems running Ruby
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all users regardless of encryption algorithm used due to potential GHASH key leakage.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of encrypted data, ability to forge valid JWEs, and recovery of encryption keys leading to widespread data breaches.

🟠

Likely Case

Unauthorized decryption of sensitive JWE-encrypted data and potential authentication bypass in systems relying on JWE for security.

🟢

If Mitigated

Limited impact if keys are rotated immediately and systems are patched before exploitation.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires access to encrypted JWEs and computational resources for brute-forcing.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.1.1

Vendor Advisory: https://github.com/jwt/ruby-jwe/security/advisories/GHSA-c7p4-hx26-pr73

Restart Required: No

Instructions:

1. Update Gemfile to specify 'gem "jwe", ">= 1.1.1"' 2. Run 'bundle update jwe' 3. Rotate all encryption keys used with affected versions

🔧 Temporary Workarounds

Disable JWE usage temporarily

all

Temporarily disable JWE-based functionality until patching is complete

🧯 If You Can't Patch

  • Immediately rotate all encryption keys used with affected versions
  • Implement additional integrity checks on JWE payloads at application level

🔍 How to Verify

Check if Vulnerable:

Check Gemfile.lock or run 'bundle show jwe' to see installed version

Check Version:

bundle show jwe | grep -o 'jwe ([0-9.]*)'

Verify Fix Applied:

Verify version is 1.1.1 or higher with 'bundle show jwe'

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed JWE decryption attempts
  • Unusual JWE parsing errors

Network Indicators:

  • High volume of JWE traffic to/from single source
  • Repeated JWE submissions with minor variations

SIEM Query:

source="application.log" AND ("JWE decryption failed" OR "authentication tag invalid")

🔗 References

📤 Share & Export