Chyba zabezpečení v modulu http2 z Node.js

Vývojáři platformy JavaScript na straně serveru Node.js zveřejnili opravná vydání 12.22.4, 14.17.4 a 16.6.0, která částečně opravují zranitelnost (CVE-2021-22930) v modulu http2 (klient HTTP/2.0) , který umožňuje iniciovat pád procesu nebo potenciálně organizovat provádění vašeho kódu v systému při přístupu k hostiteli ovládanému útočníkem.

Problém je způsoben přístupem k již uvolněné paměti při uzavírání připojení po přijetí rámců RST_STREAM (resetování vlákna) pro vlákna, která provádějí intenzivní operace čtení, které blokují zápisy. Pokud je přijat rámec RST_STREAM bez zadání chybového kódu, modul http2 navíc zavolá proceduru čištění pro již přijatá data, ze které je znovu volána obsluha uzavření pro již uzavřený proud, což vede k dvojitému uvolnění datových struktur.

Diskuse o opravě hotfix uvádí, že problém není zcela vyřešen a za mírně upravených podmínek se nadále objevuje v publikovaných aktualizacích. Analýza ukázala, že oprava pokrývá pouze jeden ze speciálních případů – když je vlákno v režimu čtení, ale nebere v úvahu další stavy vlákna (čtení a pozastavení, pozastavení a některé typy zápisu).

Zdroj: opennet.ru

Přidat komentář