Geschrieben von usa am 13.11.2014
Übersetzt von Marcus Stollsteimer
Unbeschränkte Entitätsexpansion kann zu einer DoS-Schwachstelle in REXML führen, ähnlich wie in “Entitätsexpansion-DoS-Schwachstelle in REXML (XML-Bombe, CVE-2013-1821)” und “CVE-2014-8080: Denial-of-Service XML-Expansion”. Dieser Sicherheitslücke wurde die CVE-Nummer CVE-2014-8090 zugewiesen. Wir empfehlen dringend, Ruby zu aktualisieren.
Details
Dies ist eine weitere Korrektur für CVE-2013-1821 und CVE-2014-8080. Die bisherigen Patches haben mehrere Probleme bei der rekursiven Expansion und die Gesamtgröße der erzeugten Strings korrigiert. Sie haben jedoch die bisherige Schranke für Entitätsexpansionen außer Acht gelassen. Rekursive Entitätsexpansion mit einem leeren String kann zu vollständiger Auslastung der CPU führen. Ferner kann der REXML-Parser dazu gebracht werden, extrem große String-Objekte zu allozieren, wenn er Textknoten aus einem XML-Dokument ausliest. Diese können den gesamten Speicher eines Rechners belegen, was zu einem Denial-of-Service führt.
Betroffener Code sieht etwa folgendermaßen aus:
Alle Nutzer, die eine betroffene Ruby-Version einsetzen, sollten diese entweder aktualisieren oder den Workaround anwenden.
Betroffene Versionen
- Alle Versionen von Ruby 1.9 vor Ruby 1.9.3 patchlevel 551
- Alle Versionen von Ruby 2.0 vor Ruby 2.0.0 patchlevel 598
- Alle Versionen von Ruby 2.1 vor Ruby 2.1.5
- Alle Trunk-Revisionen vor Revision 48402
Workaround
Wenn Sie Ihr Ruby nicht aktualisieren können, nutzen Sie diesen Monkeypatch als Workaround:
Danksagung
Dank an Tomas Hoger für das Melden des Problems.
Verlauf
- Veröffentlicht am 2014-11-13 12:00:00 UTC