{"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.32351,"ingestedAt":"2026-08-19T13:39:32.717Z","slug":"CVE-2026-21713","body":"## Overview\n\nA 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.\r\n\r\nNode.js already provides timing-safe comparison primitives used elsewhere in the codebase, indicating this is an oversight rather than an intentional design decision.\r\n\r\nThis vulnerability affects **20.x, 22.x, 24.x, and 25.x**.\n\n## Affected\n\n- `node.js <= 20.20.1`\n- `node.js >= 22.0.0, <= 22.22.1`\n- `node.js >= 24.0.0, <= 24.14.0`\n- `node.js >= 25.0.0, <= 25.8.1`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":33,"depthScoreParts":{"impact":32.5,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}