Executive brief
jwcrypto is a library used to handle JSON Web Key (JWK) cryptographic material, commonly integrated into identity and access management systems. An attacker can exploit an inefficient validation algorithm in the JWK import function by submitting a specially crafted key with an extremely large array of key operations, causing the affected application to consume excessive CPU resources and become unresponsive. This denial-of-service attack requires no authentication and can be triggered through multiple standard integration points including OIDC client registration, DPoP, and ACME protocols.
Technical details
The vulnerability exists in jwcrypto's JWK.import_key() function, which validates the key_ops JWK member for duplicate values using an O(n²) time complexity algorithm (nested loop comparison). The key_ops array length is not bounded during import, allowing an attacker to supply an arbitrarily large array. A remote, unauthenticated attacker can craft a JWK with a massive key_ops array and pass it to any public API that imports untrusted key material, such as ECDH-ES key agreement, OIDC dynamic client registration, DPoP token validation, or ACME account key registration. The inefficient duplicate-checking algorithm will consume excessive CPU cycles proportional to the square of the array length, resulting in denial of service. No patch or workaround is documented as of the advisory date.
Affected products
- jwcrypto jwcrypto <UNKNOWN>
Timeline
- 2026-09-16: disclosed: CVE-2026-92091 published