Die Entwickler der serverseitigen JavaScript-Plattform Node.js haben die Korrekturversionen 12.22.4, 14.17.4 und 16.6.0 veröffentlicht, in denen eine teilweise Behebung der Sicherheitsanfälligkeit (CVE-2021-22930) im http2-Modul (HTTP/2.0-Client) erfolgt ist. Diese ermöglicht es, einen Prozessabsturz zu initiieren oder potenziell die Ausführung eigenen Codes im System zu organisieren, wenn auf einen vom Angreifer kontrollierten Host zugegriffen wird.
Das Problem wird durch den Zugriff auf einen bereits freigegebenen Speicherbereich beim Schließen der Verbindung nach Erhalt von RST_STREAM-Frames (Stream zurücksetzen) verursacht, die für Streams, in denen intensive Leseoperationen stattfinden, die die Schreiboperation blockieren, ausgeführt werden. Wenn ein RST_STREAM-Frame ohne einen Fehlercode empfangen wird, ruft das http2-Modul zusätzlich die Aufräumprozedur für bereits erhaltene Daten auf, bei der der Schließhandler für den bereits geschlossenen Stream erneut aufgerufen wird, was zu einer doppelten Freigabe der Datenstrukturen führt.
In der Diskussion über die Korrektur wird darauf hingewiesen, dass das Problem nicht vollständig behoben ist und unter leicht geänderten Bedingungen weiterhin in den veröffentlichten Updates auftritt. Die Analyse ergab, dass die Korrektur nur einen der speziellen Fälle schließt – wenn der Stream im Lesemodus ist, jedoch andere Zustände des Streams (lesend und pausierend, pausierend und einige Arten von Schreiben) nicht berücksichtigt werden.
Quelle: opennet.ru
