Skip to main content

cjose CVE-2026-53939

CRITICAL
Use of Hard-coded Cryptographic Key (CWE-321)
2026-09-09 security-advisories@github.com
9.1
CVSS 3.1 · Vendor: github
Share

Severity by source

Vendor (github) PRIMARY
9.1 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
vuln.today AI
9.1 CRITICAL

Anyone obtaining the JWE decrypts and forges it via the known zero key (C:H/I:H, PR:N/UI:N); no availability effect, no scope change; AV:N reflects handling network-transmitted ciphertext.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
SUSE
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

4
POC Analysis Generated
Sep 09, 2026 - 11:25 vuln.today
Source Code Evidence Fetched
Sep 09, 2026 - 05:06 vuln.today
Analysis Generated
Sep 09, 2026 - 05:06 vuln.today
CVE Published
Sep 09, 2026 - 00:17 cve.org
CRITICAL 9.1

DescriptionCVE.org

OpenIDC/cjose is a C library implementing the Javascript Object Signing and Encryption (JOSE). In versions 0.6.1 through 0.6.2.5, when cjose encrypts a JWE using an AES-CBC-HMAC content-encryption algorithm (A128CBC-HS256, A192CBC-HS384, or A256CBC-HS512) together with any key-management algorithm that generates a fresh content-encryption key (CEK), the CEK is all zero bytes instead of being randomly generated. The resulting JWE is therefore encrypted and authenticated under a fixed, publicly known key, so anyone who obtains the JWE can recover the plaintext and forge or modify the content. This is fixed in version 0.6.2.6 by _cjose_jwe_set_cek_aes_cbc() generating the CEK from RAND_bytes. A regression test asserts that the encrypted_key differs across two encryptions for each AES-CBC-HMAC variant. Until upgrading, for data encrypted with cjose, three options are available. Use an AES-GCM enc (A128GCM / A192GCM / A256GCM) instead of an AES-CBC-HMAC enc, use alg=dir with a caller-supplied CEK, or avoid using cjose for JWE encryption with the affected algorithm pair. These are mitigations for new ciphertexts only; data already encrypted under the zero key remains compromised and should be re-encrypted (and any secrets it contained rotated).

AnalysisAI

Plaintext recovery and content forgery in OpenIDC/cjose 0.6.1 through 0.6.2.5 occurs because the library zero-fills the content-encryption key (CEK) instead of randomizing it whenever a JWE is built with an AES-CBC-HMAC enc (A128CBC-HS256/A192CBC-HS384/A256CBC-HS512) and a key-management algorithm that generates a fresh CEK. Every affected ciphertext is therefore encrypted and authenticated under an all-zero, publicly known key, so anyone who obtains the JWE can decrypt it and forge or modify its contents. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
technique details hidden
Delivery
technique details hidden
Exploit
technique details hidden
Execution
technique details hidden
Impact
technique details hidden

Vulnerability AssessmentAI

Exploitation Requires that the target generate JWEs with cjose 0.6.1-0.6.2.5 using an AES-CBC-HMAC enc value (A128CBC-HS256, A192CBC-HS384, or A256CBC-HS512) combined with a key-management alg that makes cjose generate a fresh CEK (e.g., AES key-wrap A128KW/A192KW/A256KW, RSA-OAEP, or ECDH-ES+KW). … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/C:H/I:H/A:N, 9.1) is a reasonable characterization of impact: an attacker who can read an affected JWE recovers plaintext (C:H) and can also forge/alter authenticated content (I:H), with no availability effect (A:N). … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario Full exploit scenario with step-by-step reproduction available after sign-in.
Remediation Vendor-released patch: upgrade cjose to 0.6.2.6, which makes _cjose_jwe_set_cek_aes_cbc() derive the CEK from RAND_bytes and adds a regression test asserting encrypted_key varies across encryptions (advisory GHSA-f6wf-pqg3-6wqq; commit 2a6e5bd969fa20059fb00913fb9f57d77ea6a4d9). … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours, identify all systems and applications using OpenIDC/cjose versions 0.6.1 through 0.6.2.5 and prioritize production environments. …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Module for Server Applications 15 SP7 Affected
SUSE Linux Enterprise Server 15 SP7 Affected
SUSE Linux Enterprise Server 16.0 Affected
SUSE Linux Enterprise Server 16.1 Affected
SUSE Linux Enterprise Server for SAP Applications 15 SP7 Affected

Share

CVE-2026-53939 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy