Skip to content

EEF-CVE-2026-65625 CVE-2026-65625 GHSA-6gxw-6f7r-cjr6

Attacker-controlled AES-GCM authentication tag length allows tag forgery in jose

Not rated yet Hex
Severity
0.0 / 10
Unknown · CVSS 4.0
Exploit chance (EPSS)
0.11%
Chance of exploitation in the next 30 days. Higher than 1.54% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-354 Improper Validation of Integrity Check Value
Fix
1.11.13
Upgrade jose to this version or later

Description

Summary

The pure-Erlang AES-GCM fallback in jose_jwa_aes derives the number of verified authentication tag bits from the attacker-supplied tag itself. In the {aes_gcm, Bits} clause of block_decrypt/4, the incoming tag is guarded only by is_binary/1, with no check on its length. Verification in gcm_block_decrypt/6 then computes TBits = bit_size(T) and compares only those bits of the real 128-bit tag. An attacker who controls a JWE token can truncate the authentication tag to as little as 8 bits, so only 8 bits are ever checked. This reduces forgery resistance from 2^-128 to 2^-8, and a forged ciphertext is reliably accepted as authentic within 256 attempts without knowledge of the key (an authentication tag forgery and integrity bypass). Supplying a tag longer than 128 bits instead causes a badmatch that crashes the decrypting process. The fallback is reached through the public JWE decryption path whenever AES-GCM is not provided by a native crypto NIF, for example on FIPS or stripped or older OTP builds.

This issue affects jose: from 1.2.0 before 1.11.13.

Workarounds

Ensure the runtime provides a crypto provider with native AES-GCM support (a standard Erlang/OTP build linked against OpenSSL) so that JOSE dispatches AES-GCM to the native crypto NIF instead of the jose_jwa_aes fallback.

Configurations

This vulnerability is only exploitable when AES-GCM is handled by the pure-Erlang jose_jwa_aes fallback. That fallback is used on deployments where the Erlang/OTP crypto NIF does not expose native AES-GCM (for example FIPS builds, or stripped or older OTP releases). Deployments with a native AES-GCM crypto provider dispatch GCM through crypto and are not affected.

Affected versions

Hex

PackageVulnerableFixed in
jose
>= 1.2.0, < 1.11.13
1.11.13

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

jose Hex → 1.11.13

mix
{:jose, "~> 1.11.13"} # then: mix deps.update jose

Severity breakdown

CVSS 4.0 0.0

CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N

Attack vector
Local
Attack complexity
Low
Attack requirements
Present
Privileges required
None
User interaction
None
Confidentiality (vulnerable system)
None
Integrity (vulnerable system)
High
Availability (vulnerable system)
Low
Confidentiality (subsequent systems)
None
Integrity (subsequent systems)
None
Availability (subsequent systems)
None

Weakness

CWE-354: Improper Validation of Integrity Check Value

The product does not validate or incorrectly validates the integrity check values or "checksums" of a message. This may prevent it from detecting if the data has been modified or corrupted in transmission.

How to prevent it
  • Implementation: Ensure that the checksums present in messages are properly checked in accordance with the protocol specification before they are parsed and used.

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy it's related
EEF-CVE-2026-65630
Timing side-channel in pure-Erlang X25519 scalar multiplication leaks the private key in jose
Not rated yet Also affects jose
EEF-CVE-2026-65632
ECDSA signature length is not validated in jose, allowing signature malleability
Not rated yet Also affects jose
EEF-CVE-2026-65631
erlang-jose RSA JWK parsing attempts to factor an attacker-controlled modulus, enabling CPU-exhaustion denial of service
Not rated yet Also affects jose
EEF-CVE-2026-65629
Weak PBKDF2 parameters for password-encrypted private-key export in jose
Not rated yet Also affects jose
EEF-CVE-2026-65628
Infinite recursion (CPU denial-of-service) in JOSE.JWK.shared_secret/2 on mismatched key types
Not rated yet Also affects jose
EEF-CVE-2026-65627
Decompression bomb via unbounded zlib:inflate in jose_jwe_zip:uncompress/2
Not rated yet Also affects jose
EEF-CVE-2026-65626
Bleichenbacher padding oracle in RSAES-PKCS1-v1_5 decryption in jose
Not rated yet Also affects jose
GHSA-9mg4-v392-8j68
erlang-jose vulnerable to denial of service via large p2c value
Medium Also affects jose

Credits: Andrew Bennett, Jonatan Männchen / EEF, Peter Ullrich

Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor