Sicherheitslücke in allen Node.js-Versionen

Eine Sicherheitslücke macht viele Node.js-Anwendungen anfällig für Denial-of-Service-Attacken. Die Entwickler haben korrigierte Versionen von Node.js 4, 6, 7 und 8 bereitgestellt und raten dringend zum Update.

In Pocket speichern vorlesen Druckansicht 100 Kommentare lesen
Sicherheitslücke in allen Node.js-Versionen
Lesezeit: 1 Min.
Von
  • Dr. Oliver Diedrich

Node.js, eine Software zum Ausführen von JavaScript-Code außerhalb von Webbrowsern, wird mittlerweile auf vielen Servern für Backend-Services genutzt. Jetzt wurde ein Fehler bei der Implementierung von Hashtables in allen Node.js-Versionen entdeckt, der die meisten Node.js-Anwendungen anfällig für DoS-Attacken macht. Die "Node.js Constant Hashtable Seeds Vulnerability" beruht auf der fehlerhaften Initialisierung von Hashtables. Dadurch wird ein so genanntes Hash Flooding möglich, durch das die Node.js-Anwendung immer langsamer reagiert.

Hash-Tabellen werden in JavaScript-Anwendungen unter anderem zum Speichern von Objekten, Sets, Maps, Methoden und JSON-Daten genutzt. Sie speichern Daten als Schlüssel-Wert-Paar, wobei für den Schlüssel ein Hash zur Indexierung des zugehörigen Wertes berechnet wird. Wenn zwei unterschiedliche Schlüssel zufällig den gleichen Hash aufweisen, was in der Praxis nur sehr selten vorkommt, wird eine aufwendige Sonderbehandlung beim Speichern und Auslesen der Werte nötig, die den Datenzugriff dramatisch verlangsamt. Die "Node.js Constant Hashtable Seeds Vulnerability" macht es möglich, solche Hash-Kollisionen gezielt in großem Umfang auszulösen. Das Prinzip erklärt dieses Paper vom 28C3.

Die Node.js-Entwickler haben Updates für alle noch unterstützten Node.js-Versionen veröffentlicht. Nutzer sollten umgehend die korrigierten Versionen 4.8.4, 6.11.1 (aktuelle LTS-Version), 7.10.1 (Entwicklerversion) und 8.1.4 (aktuelle Version) einspielen. (odi)