---
id: CVE-2026-21713
title: >-
  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
summary: >-
  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…
severity: medium
cvss: 5.9
cvssVector: 'CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-208
vendor: nodejs
product: node.js
affected:
  - node.js <= 20.20.1
  - 'node.js >= 22.0.0, <= 22.22.1'
  - 'node.js >= 24.0.0, <= 24.14.0'
  - 'node.js >= 25.0.0, <= 25.8.1'
published: '2026-03-30'
updated: '2026-08-19'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-21713'
references:
  - url: 'https://nodejs.org/en/blog/vulnerability/march-2026-security-releases'
    label: support@hackerone.com
tags:
  - nvd
epss: 0.00385
epssPercentile: 0.29774
ingestedAt: '2026-08-19T13:39:32.717Z'
---

## Overview

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

## Affected

- `node.js <= 20.20.1`
- `node.js >= 22.0.0, <= 22.22.1`
- `node.js >= 24.0.0, <= 24.14.0`
- `node.js >= 25.0.0, <= 25.8.1`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
