Уязвимость в http2-модуле из состава Node.js

Разработчики серверной JavaScript-платформы Node.js опубликовали корректирующие выпуски 12.22.4, 14.17.4 и 16.6.0, в которых частично устранена уязвимость (CVE-2021-22930) в модуле http2 (клиент HTTP/2.0), позволяющая инициировать крах процесса или потенциально организовать выполнение своего кода в системе при обращении к подконтрольному злоумышленнику хосту.

Проблема вызвана обращением к уже освобождённой области памяти при закрытии соединения после получения кадров RST_STREAM (сброс потока) для потоков, в которых выполняются интенсивные операции чтения, блокирующие запись. В случае получения кадра RST_STREAM без указания кода ошибки модуль http2 дополнительно вызывает процедуру очистки уже полученных данных, из которой для уже закрытого потока повторно вызывается обработчик закрытия, что приводит к двойному освобождению структур данных.

В обсуждении исправления отмечается, что проблема устранена не полностью и при немного изменённых условиях продолжает проявляется в опубликованных обновлениях. Разбор показал, что исправление закрывает лишь один из частных случаев — когда поток находится в режиме чтения, но не учитывает другие состояния потока (чтение и приостановка, приостановка и некоторые виды записи).

Источник: opennet.ru

Добавить комментарий