Ошибка в проверке HMAC Node.js использует сравнение с непостоянным временем при проверке подписей, предоставленных пользователем, что может привести к утечке информации о времени, пропорциональной количеству совпадающих байтов. В некоторых моделях угроз, где возможны измерения времени с высоким разрешением, такое поведение может использоваться в качестве оракула времени для вывода значений HMAC.
Node.js уже предоставляет примитивы сравнения, безопасные по времени, используемые в других местах кодовой базы, что указывает на то, что это недосмотр, а не преднамеренное дизайнерское решение.
Эта уязвимость затрагивает **20.x, 22.x, 24.x и 25.x**.
Показать оригинальное описание (EN)
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**.
Характеристики атаки
Последствия
Строка CVSS v3.0