Description
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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| potatosalad | jose | 1.2.0 – < 1.11.13 | 1.11.13 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | erlang-jose | 1.11.13-1 | — |
| Debian 13 | erlang-jose | No fix yet | — |
| Debian 12 | erlang-jose | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | jose | No fix yet | — |
| Ubuntu 26.04 LTS | jose | No fix yet | — |
| Ubuntu 24.04 LTS | jose | No fix yet | — |
| Ubuntu 22.04 LTS | jose | No fix yet | — |
| Ubuntu 20.04 LTS | jose | No fix yet | — |
Show 1 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 18.04 LTS | jose | No fix yet | — |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | rabbitmq-server | No fix yet | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Hex | jose | >= 1.2.0, < 1.11.13 | 1.11.13 | EEF-CVE-2026-65625 |
References
- https://github.com/potatosalad/erlang-jose/security/advisories/GHSA-6gxw-6f7r-cjr6 vendor-advisory related
- EEF CNA record for CVE-2026-65625 related
- OSV record EEF-CVE-2026-65625 related
- Introducing commit 8848b17 in potatosalad/erlang-jose related
- Fix commit 3fa1f8e in potatosalad/erlang-jose patch