GitHub Advisoryadvisory · RubyGems
GHSA-c7p4-hx26-pr73 JWE is missing AES-GCM authentication tag validation in encrypted JWE
CRITICAL
Official page ↗
- Aliases
- CVE-2025-54887
- Ecosystem
- RubyGems
- Packages
- jwe
- Severity
- Critical
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
- Weaknesses
- CWE-354
- Reviewed
- 2025-08-07
Affected packages
• RubyGems jwe: < 1.1.1 → fixed in 1.1.1
Description
Overview
The authentication tag of encrypted JWEs can be brute forced, which may result in loss of confidentiality for those JWEs and provide ways to craft arbitrary JWEs.
Impact
• JWEs can be modified to decrypt to an arbitrary value
• JWEs can be decrypted by observing parsing differences
• The GCM internal GHASH key%20is%20the-,hash%20key,-%2C%20a%20string%20of) can be recovered
Am I Affected?
You are affected by this vulnerability even if you do not use an `AES-GCM` encryption algorithm for your JWEs.
Patches
The version 1.1.1 fixes the issue by adding the tag length check for the `AES-GCM` algorithm.
Important: As the GHASH key%20is%20the-,hash%20key,-%2C%20a%20string%20of) could have leaked, you must rotate the encryption keys after upgrading to version 1.1.1.
References
Félix Charette talk at NorthSec 2025 about the issue
Related
Alias · CVE (1)
- CVE-2025-54887 jwe is a Ruby implementation of the RFC 7516 JSON Web Encryption (JWE) standard. vulnerability
Weakness · CWE (1)
- CWE-354 Improper Validation of Integrity Check Value weakness
References
- https://github.com/jwt/ruby-jwe/security/advisories/GHSA-c7p4-hx26-pr73 web
- https://nvd.nist.gov/vuln/detail/CVE-2025-54887 advisory
- https://github.com/jwt/ruby-jwe/commit/1e719d79ba3d7aadaa39a2f08c25df077a0f9ff1 web
- https://github.com/jwt/ruby-jwe package
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/jwe/CVE-2025-54887.yml web