Vývojáři serverové JavaScriptové platformy Node.js vydali opravy verzí 12.22.4, 14.17.4 a 16.6.0, které částečně řeší zranitelnost (CVE-2021-22930) v modulu http2 (klient HTTP/2.0), umožňující způsobit pád procesu nebo potenciálně provést svůj kód v systému při přístupu k hostiteli kontrolovanému útočníkem.
Problém je způsoben přístupem k již uvolněné oblasti paměti při uzavření spojení po přijetí rámců RST_STREAM (reset toku) pro toky, ve kterých probíhají intenzivní operace čtení, blokující zápis. Při přijetí rámce RST_STREAM bez určení kódu chyby modul http2 navíc volá úklidovou proceduru již přijatých dat, z níž je pro již uzavřený tok znovu vyvolán zpracovatel uzavření, což vede k duplicitnímu uvolnění datových struktur.
V diskusi o opravě je poznamenáno, že problém nebyl zcela vyřešen a při mírně upravených podmínkách se stále projevuje v vydaných aktualizacích. Analýza ukázala, že oprava řeší pouze jeden z konkrétních případů — kdy je tok v režimu čtení, ale nezohledňuje jiné stavy toku (čtení a pozastavení, pozastavení a některé typy zápisu).
Zdroj: opennet.ru
