Вразливість у 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

Додати коментар або відгук