LiveActive security incident?Get immediate response
CVE Record

CVE-2026-21713: A flaw in Node.js HMAC verification uses a non-constant-time comparison when validating user-provided signa...

A flaw in Node.js HMAC verification uses a non-constant-time comparison when validating user-provided signatures, potentially leaking timing information proportional to the number of matching bytes. Under certain threat models where high-resolution timing measurements are possible, this behavior could be exploited as a timing oracle to infer HMAC values. Node.js already provides timing-safe comparison primitives used elsewhere in the codebase, indicating this is an oversight rather than an intentional design decision. This vulnerability affects **20.x, 22.x, 24.x, and 25.x**.

MediumCVSS 5.9Not KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

A weakness in Node.js lets an attacker, in narrow conditions, learn parts of a secret signature by carefully measuring how long the server takes to reject a wrong one. It is not a remote takeover bug, but services that verify signed requests on affected Node.js versions should be patched on a normal cadence.

Executive priority

Schedule a routine Node.js upgrade in the next maintenance window. Not an emergency, but should not be deferred indefinitely if applications verify signed payloads.

Technical view

CVE-2026-21713 is a CWE-208 observable timing discrepancy in Node.js HMAC verification, where user-supplied signatures are compared with a non-constant-time routine. Response time scales with the number of matching leading bytes, creating a timing oracle that, given sufficient measurements, could allow incremental recovery of HMAC values. Fixed in 20.20.1, 22.22.1, 24.14.0, and 25.8.1. CVSS 5.9 (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N).

Likely exposure

Any Node.js service on 20.x, 22.x, 24.x, or 25.x that verifies HMAC signatures using the affected built-in comparison path is potentially exposed. Risk concentrates on webhook receivers, API signature validation, and session/token verifiers where an attacker can submit many guesses and observe response timing.

Exploitation context

No public reports of active exploitation and the CVE is not on CISA KEV. The CVSS vector flags high attack complexity because precise, high-resolution timing measurements are required, which is difficult across typical network paths but more plausible for co-located or local attackers.

Researcher notes

CWE-208 timing side channel in HMAC verification. Node.js already exposes timing-safe equality, so this is described by the vendor as an oversight in one verification path. Practical exploitability depends on attacker proximity, jitter, and the number of measurements feasible before detection or rate limiting. Validate that downstream application code does not also roll its own non-constant-time comparison for signatures.

Mitigation direction

  • Upgrade Node.js to 20.20.1, 22.22.1, 24.14.0, or 25.8.1 per the March 2026 security release.
  • Audit application code to use timing-safe comparison primitives for any HMAC or secret validation.
  • Rate-limit and monitor signature-verification endpoints to reduce feasibility of timing measurement.
  • Confirm container, Lambda, and managed runtime base images pick up the patched Node.js version.
  • Track vendor guidance for any additional advisories tied to the March 2026 release.

Validation and detection

  • Run node -v across hosts, containers, and serverless runtimes and compare to the fixed versions.
  • Inventory code paths that call HMAC verification and confirm they reach the patched implementation.
  • Search application code for direct string or buffer equality on secrets and flag for review.
  • Review webhook and signed-request endpoints for response-time variance under repeated requests.
  • Confirm CI base images and dependency lockfiles reference patched Node.js releases.
Prepared
Confidence
medium
Sources
3

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-208: 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-21713 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
Medium
CVSS
5.9 (3.0)
Known Exploited
No
Published

Vector: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/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
2Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: yesTechnical Impact: partial

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
5.9CVSS 3.0MediumCVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N2.23.6hackerone

Vulnerability scoring details

Base CVSS 3.0 score

5.9Medium
CVSS 3.0 vector shape for CVE-2026-21713Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/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
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
nodejsnode20.20.1, 22.22.1, 24.14.0, 25.8.1, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0unaffected
Weakness

CWE details

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

CWE-208 · source CWE mapping

Observable Timing Discrepancy

Observable Timing Discrepancy represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.