CVE-2026-65632: medium-severity vulnerability in potatosalad jose
ECDSA signature length is not validated in jose, allowing signature malleability
Published · Updated
E-mail alert when it lands in KEV, gets a public PoC or its score goes up.
13Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackcvss 5.1epss 0.1%
The jose library accepts ECDSA (ES256, ES256K, ES384, and ES512) JWS signatures of a non-canonical length. When verifying an ECDSA signature, jose_jwk_kty_ec:verify/4 in src/jwk/jose_jwk_kty_ec.erl splits the raw signature in half by its actual byte length (split_binary(Signature, byte_size(Signature) div 2)) instead of enforcing the fixed length required by RFC 7518 §3.4, and then decodes each half with crypto:bytes_to_integer/1, which ignores leading zero bytes.
As a result, an attacker who holds one valid token can prepend leading zero bytes to each of the R and S halves to produce longer signatures that still split evenly and decode to the same (r, s) pair, so many distinct signature byte strings all verify against the same key (signature malleability). This does not allow forging new payloads or impersonating a signer, because the underlying (r, s) values are unchanged. It does defeat any security control that assumes a valid token or its signature is unique, such as token-revocation-by-hash, replay or idempotency caches, and deduplication logic.
This issue affects jose: from 1.0.0 before 1.11.13.
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Affected products
potatosalad · joseRelated CVEs — potatosalad jose
In the same product, most dangerous first.
CVE-2026-65627MEDIUMDecompression bomb via unbounded zlib:inflate in jose_jwe_zip:uncompress/2EPSS 0.2%CVE-2026-65631MEDIUMerlang-jose RSA JWK parsing attempts to factor an attacker-controlled modulus, enabling CPU-exhaustion denial of serviceEPSS 0.2%CVE-2026-65630MEDIUMTiming side-channel in pure-Erlang X25519 scalar multiplication leaks the private key in joseEPSS 0.1%CVE-2026-65628MEDIUMInfinite recursion (CPU denial-of-service) in JOSE.JWK.shared_secret/2 on mismatched key typesEPSS 0.1%CVE-2026-65625MEDIUMAttacker-controlled AES-GCM authentication tag length allows tag forgery in joseEPSS 0.1%CVE-2026-65626MEDIUMBleichenbacher padding oracle in RSAES-PKCS1-v1_5 decryption in joseEPSS 0.1%
References
https://cna.erlef.org/cves/CVE-2026-65632.htmlhttps://github.com/potatosalad/erlang-jose/commit/72ce1866622b9329347dc52a94173ac0317bc9cfhttps://github.com/potatosalad/erlang-jose/commit/a7746ecd4950f85a393136e449a91dac62b5c429https://github.com/potatosalad/erlang-jose/security/advisories/GHSA-44hw-rpw9-mwg4https://osv.dev/vulnerability/EEF-CVE-2026-65632