CVE-2026-65626 Details
Description
The pure-Erlang RSAES-PKCS1-v1_5 decryption in the jose_jwa_pkcs1 module is a Bleichenbacher padding oracle. eme_pkcs1_decode/2 returns the recovered message when a decrypted block has valid PKCS#1 v1.5 padding (a leading 0x00 0x02, a padding string of at least eight non-zero bytes, and a 0x00 separator) and returns a distinct error result otherwise, and rsaes_pkcs1_decrypt/2 additionally returns {error, {badsize, _}} when the length check fails. The implementation applies no implicit-rejection countermeasure (RFC 8017 §7.2.2): it does not substitute a deterministic pseudo-random plaintext on a padding failure, so a one-bit padding-conformance signal leaks to the caller. Because the underlying modular exponentiation in dp/2 is a raw, non-blinded crypto:mod_pow/3, the padding check also stays distinguishable by timing even when an application normalizes every failure to a single error value. An unauthenticated attacker who knows only the public RSA key and can submit ciphertexts to a decryption endpoint that unwraps RSA1_5 JWE keys (or otherwise calls decrypt_private/3 with rsa_pkcs1_padding) can use this oracle to recover the plaintext of intercepted ciphertexts, such as content-encryption keys and thus the protected message, or to forge signatures, through roughly 10^4 to 10^6 adaptive chosen-ciphertext queries. This issue affects jose: from 1.3.0 before 1.11.13.
A padding oracle vulnerability has been identified in the pure-Erlang implementation of RSAES-PKCS1-v1_5 decryption within the jose library, specifically in versions 1.3.0 prior to 1.11.13. This vulnerability allows an attacker to exploit the decryption process by sending ciphertexts to a decryption endpoint that unwraps RSA1_5 JWE keys. The vulnerability arises because the decryption function, eme_pkcs1_decode/2, distinguishes between valid and invalid PKCS#1 v1.5 padding. When the padding is valid, the function returns the decrypted message; otherwise, it returns an error. This behavior creates a one-bit padding oracle that can be exploited to recover plaintext from intercepted ciphertexts or forge signatures, using approximately 10,000 to 1,000,000 adaptive chosen-ciphertext queries.
The vulnerability has been patched in jose version 1.11.13. Users should update to this version to address the issue.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed Oct 26, 2026CISA-ADP
Assessed Nov 2, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://cna.erlef.org/cves/CVE-2026-65626.html | EEF | AdvisoryVendor |
| https://github.com/potatosalad/erlang-jose/commit/0eac8cef9aaa48fb6846f4e47a0002dc4a73966d | EEF | Source CodeVendor |
| https://github.com/potatosalad/erlang-jose/commit/853c5d4c4c0bd2a7ecb055b237f4284184e176c8 | EEF | Source CodeVendor |
| https://github.com/potatosalad/erlang-jose/security/advisories/GHSA-vwvr-f994-6j9j | EEF | AdvisoryExploitVendor |
| https://osv.dev/vulnerability/EEF-CVE-2026-65626 | EEF | AdvisoryVendor |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-203 | Observable Discrepancy | EEF |
Affected Products
| Product | Versions |
|---|---|
| potatosalad jose | All versions |
CPE
Remediation
| |
Change History
2 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Nov 2, 2026 | CVE Modified | CISA-ADP |
| Oct 26, 2026 | New CVE Received | EEF |
Volerion