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