LiveActive security incident?Get immediate response
CVE Record

CVE-2026-53939: OpenIDC/cjose uses all-zero Content Encryption Key for AES-CBC-HMAC JWE encryption

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).

CriticalCVSS 9.1Not KEV-listedUpdated
Glexia's TakeAutomated analysiscritical

Security readout for executives and security teams

Plain-English summary

Affected cjose versions can protect certain encrypted JWE messages with a publicly known all-zero key. Anyone obtaining such a message could read it and alter it without detection. The flaw threatens confidentiality and integrity, including historical ciphertexts, but does not directly affect availability.

Executive priority

Treat as an urgent confidentiality and integrity incident where affected encryption was used. Patch immediately, determine whether sensitive historical JWEs exist, re-encrypt recoverable data, and rotate exposed credentials or secrets. Systems merely carrying cjose without the affected encryption combinations have lower practical urgency after configuration verification.

Technical view

cjose 0.6.1 through 0.6.2.5 fails to randomly generate the CEK when AES-CBC-HMAC encryption is paired with key management that creates a fresh CEK. The fixed CEK permits plaintext recovery and valid forgery. Version 0.6.2.6 uses RAND_bytes to generate the CEK.

Likely exposure

Exposure requires cjose 0.6.1–0.6.2.5 to encrypt JWE using A128CBC-HS256, A192CBC-HS384, or A256CBC-HS512 with key management that generates a fresh CEK. AES-GCM and alg=dir with a caller-supplied CEK are not identified as affected. Previously generated affected JWEs remain compromised.

Exploitation context

No active exploitation is established by the supplied sources, and the CVE is not listed as KEV in the bundle. Exploitation would require obtaining an affected JWE, but no privileges, user interaction, or secret-key discovery are required afterward. Public disclosure makes prompt remediation prudent.

Researcher notes

The defect maps to hard-coded cryptographic keys and insufficient randomness. Scope assessment must consider both library version and the alg/enc combination; package presence alone does not prove exploitable use. The supplied evidence establishes deterministic zero-key encryption and a source-level fix, but provides no evidence of observed attacks or affected downstream products.

Mitigation direction

  • Upgrade cjose to version 0.6.2.6 or later.
  • For new ciphertexts, use an AES-GCM content-encryption algorithm.
  • Alternatively, use alg=dir with a securely caller-supplied CEK.
  • Avoid affected algorithm combinations until the upgrade is complete.
  • Re-encrypt historical affected data and rotate any secrets it contained.

Validation and detection

  • Inventory applications and dependencies containing cjose versions 0.6.1 through 0.6.2.5.
  • Identify JWE encryption using the three affected AES-CBC-HMAC algorithms.
  • Confirm whether key management generates a fresh CEK or uses alg=dir.
  • Locate retained or transmitted JWEs created by affected configurations.
  • Verify production deployments use cjose 0.6.2.6 or later.
  • Confirm repeated test encryptions no longer indicate a fixed CEK.
Prepared
Confidence
high
Sources
5

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · low confidence lookup

CWE-321: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cwe · low confidence lookup

CWE-330: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-53939 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Critical
CVSS
9.1 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
3Timeline events
1ADP providers
4Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: yesTechnical Impact: total

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
9.1CVSS 3.1CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N3.95.2GitHub_M

Vulnerability scoring details

Base CVSS 3.1 score

9.1Critical
CVSS 3.1 vector shape for CVE-2026-53939Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
other:ssvc

Source materials

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
OpenIDCcjose>= 0.6.1, < 0.6.2.6Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-321 · source CWE mapping

Use of Hard-coded Cryptographic Key

Use of Hard-coded Cryptographic Key represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.

CWE-330 · source CWE mapping

Use of Insufficiently Random Values

Use of Insufficiently Random Values represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.