CVE-2026-65631 Details
Description
Inefficient Algorithmic Complexity in erlang-jose allows an unauthenticated remote attacker to cause a CPU-exhaustion denial of service by submitting a crafted RSA JSON Web Key. When an application parses an untrusted JWK through the public jose_jwk:from_binary/1 or jose_jwk:from_map/1 API (or the Elixir wrappers JOSE.JWK.from_binary/1 and JOSE.JWK.from_map/1), an RSA private key that supplies d, e, and n but omits all Chinese Remainder Theorem parameters (p, q, dp, dq, qi) is routed into convert_sfm_to_crt/1, which tries to recover the missing primes by factoring the modulus. The three integers are read straight from the base64url input and are never validated as a real RSA key. When the modulus cannot be split into two factors (for example, when it is itself prime), the search loop convert_sfm_to_crt_find_p/6 performs a modular exponentiation over the attacker-sized modulus on every iteration and never succeeds. A single request of a few hundred bytes forces close to one CPU-second of work before an internal one-second watchdog kills the worker, and a larger modulus raises the cost further. By flooding such requests an attacker can saturate every scheduler and deny service, without credentials, a valid RSA key, or any special configuration. This issue affects jose: from 1.7.7 before 1.11.13.
A denial-of-service vulnerability has been identified in the erlang-jose library, specifically in versions 1.7.7 prior to 1.11.13. This vulnerability allows an unauthenticated remote attacker to cause CPU exhaustion by sending a crafted RSA JSON Web Key (JWK). The issue arises when the library's JWK parsing functions are used to process untrusted keys. If an RSA private key is provided without the necessary Chinese Remainder Theorem parameters, the library attempts to recover the missing values by factoring the modulus. This process can be manipulated to create a high CPU load, effectively denying service.
Users can upgrade to erlang-jose version 1.11.13 or later, where this vulnerability has been fixed. Instructions for updating the library can be found in the erlang-jose GitHub repository.
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 3, 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-65631.html | EEF | AdvisoryVendor |
| https://github.com/potatosalad/erlang-jose/commit/bfd336c0062bff93e65d08c22361897e96afd956 | EEF | Source CodeVendor |
| https://github.com/potatosalad/erlang-jose/commit/d19e1ba68d88c68d29aa942be2573a22dbafca1f | EEF | Release NotesSource CodeVendor |
| https://github.com/potatosalad/erlang-jose/security/advisories/GHSA-3m45-vrpj-xmrq | EEF | AdvisoryExploitRemedyVendor |
| https://osv.dev/vulnerability/EEF-CVE-2026-65631 | EEF | AdvisoryBundle |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-407 | Inefficient Algorithmic Complexity | EEF |
Affected Products
| Product | Versions |
|---|---|
| potatosalad jose | >= 1.7.7, < 1.11.13 (semver) |
CPE
Remediation
| |
Change History
2 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Nov 3, 2026 | CVE Modified | CISA-ADP |
| Oct 26, 2026 | New CVE Received | EEF |
Volerion