Impact
During JSON Web Encryption decryption, the library panics when a key wrapping algorithm is specified and the encrypted_key field is empty. The panic occurs inside cipher.KeyUnwrap(), which attempts to create a slice of zero or negative length based on the encrypted_key’s length. The crash of the application amounts to a denial of service. The weakness is rooted in improper bounds handling and invalid memory allocation (CWE‑131, CWE‑248).
Affected Systems
The issue affects the go‑jose implementation of JOSE for Go, specifically all releases prior to version 4.1.4 and 3.0.5. Any project importing go‑jose before these versions and performing JWE decryption with key wrapping algorithms and missing encrypted_key content is vulnerable.
Risk and Exploitability
The CVSS score of 7.5 indicates a high severity impact. EPSS shows the likelihood of exploitation is less than 1% and the vulnerability is not listed in the CISA KEV catalog. An attacker could trigger the panic by supplying a crafted JWE token that specifies a key wrapping algorithm and an empty encrypted_key, or by providing a ciphertext under 16 bytes when calling KeyUnwrap directly. The attack would require that the library be exercised by the application, which is generally a local or user‑controlled input scenario. Once triggered the process will terminate, causing a denial of service. No publicly available exploit is known, but the low EPSS suggests that attacks would be opportunistic rather than widespread.
OpenCVE Enrichment
Github GHSA