De ontwikkelaars van het server-side JavaScript-platform Node.js hebben correcties uitgebracht voor versies 12.22.4, 14.17.4 en 16.6.0, waarin gedeeltelijk een kwetsbaarheid (CVE-2021-22930) in de http2-module (HTTP/2.0 client) is verholpen, waardoor een aanvaller de mogelijkheid heeft om het proces te laten crashen of mogelijk zijn eigen code in het systeem uit te voeren bij toegang tot een door de aanvaller gecontroleerde host.
Het probleem wordt veroorzaakt door het benaderen van een al vrijgegeven geheugenruimte bij het sluiten van de verbinding na ontvangst van RST_STREAM-frames (reset stream) voor streams die intensieve leesoperaties uitvoeren en schrijfbewerkingen blokkeren. Bij ontvangst van een RST_STREAM-frame zonder foutcode roept de http2-module bovendien de opruimprocedure aan voor de al ontvangen gegevens, waarvan de sluitingshandler voor de al gesloten stream opnieuw wordt aangeroepen, wat leidt tot een dubbele vrijgave van datastructuren.
In de discussie over de fix wordt opgemerkt dat het probleem niet volledig is opgelost en zich onder iets gewijzigde omstandigheden blijft manifesteren in de gepubliceerde updates. Analyse heeft aangetoond dat de correctie slechts een van de particuliere gevallen sluit - wanneer de stream in leesmodus is, maar geen rekening houdt met andere streamtoestanden (lezen en pauzeren, pauzeren en sommige typen schrijven).
Bron: opennet.ru
