Description
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 products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
nodejs node
Default version status: unaffected
20.20.1 to ≤ 20.20.1affected22.22.1 to ≤ 22.22.1affected24.14.0 to ≤ 24.14.0affected25.8.1 to ≤ 25.8.1affected4.0 to < 4.*affected5.0 to < 5.*affected6.0 to < 6.*affected7.0 to < 7.*affected8.0 to < 8.*affected9.0 to < 9.*affected10.0 to < 10.*affected11.0 to < 11.*affected12.0 to < 12.*affected13.0 to < 13.*affected14.0 to < 14.*affected15.0 to < 15.*affected16.0 to < 16.*affected17.0 to < 17.*affected18.0 to < 18.*affected19.0 to < 19.*affected