Hash-Flooding-DoS-Sicherheitsleck in Ruby 1.9 (CVE-2012-5371)

Es wurde ein Hash-Flooding-DoS-Anriff auf die von der Hash-Klasse der 1.9er-Serie genutzten Hashfunktion gefunden; dabei handelt es sich nicht um denselben Angriff wie CVS-2011-4815 gegen 1.8.7. 1.9-Nutzern wird daher empfohlen, auf Ruby 1.9.3 Patchlevel 327 zu aktualisieren.

Auswirkungen

Mit entsprechend akribisch aufbereiteten Listen von Strings kann ein Denial-of-Service-Angriff auf den Service durchgeführt werden, der ein Hash-Objekt mit Strings als Schlüsseln erstellt. Diese Sicherheitslücke betrifft beispielsweise Webanwendungen, die JSON-Daten aus nicht vertrauenswürdigen Quellen verarbeiten.

Diese Sicherheitslücke ähnelt CVS-2012-4815 in Ruby 1.8.7, im Gegensatz zu diesem benutzten 1.9er-Versionen von Ruby allerdings eien modifizierte Version der MurmurHash-Funktion, von der nun bekannt wurde, dass sie dazu gebracht werden kann, für eine Anzahl von Strings kollidierende Hash-Werte zu erzeugen. Daher ändert dieses Fix die verwendete Hash-Funktion von MurmurHash auf SipHash 2-4.

Lösung

Wenn Sie 1.9er-Versionen verwenden, aktualisieren Sie bitte auf Ruby 1.9.3 Patchlevel 327 ; nutzen Sie hingegen Ruby 2.0.0 Preview 1 oder den Trunk, aktualisieren Sie auf Revision 37575 oder später, um die Sicherheitsfixes zu erhalten. Abgesehen davon sollten alle Ruby-Anwendungen, die Eingabedaten aus nicht vertrauenswürdigen Quellen akzeptieren, die Größe derselben auf einen vertretbaren Maximalwert limitieren. Wir können nicht garantieren, dass wir auch in Zukunft gegen diese Art von Sicherheitsloch auf Sprachebene vorzugehen vermögen.

Betroffene Versionen

  • Alle 1.9er Ruby-Versionen vor 1.9.3 Patchlevel 327
  • Alle 2.0er Ruby-Versionen (eingeschlossen 2.0.0-preview1) vor Trunk-Revision 37575

Dank

Diese Sicherheitslücke wurde von Jean-Philippe Aumasson, einem der Designer von SipHash, gemeldet. Die ursprüngliche SipHash-Implementation für diesen Fix wurde von Martin Boßlet geschrieben, einem Ruby-Committer.

Updates

  • Englische Erstveröffentlichung: 2012-11-10 04:23:00