CVE-2014-8090: Eine weitere Denial-of-Service-XML-Expansion
Gepostet von usa am 13. Nov 2014
Unbeschränkte Entitätsexpansion kann zu einer DoS-Schwachstelle in REXML führen, wie bei „Entity expansion DoS vulnerability in REXML (XML bomb, CVE-2013-1821)“ und „CVE-2014-8080: Parameter Entity expansion DoS vulnerability in REXML“. Diese Schwachstelle wurde unter der CVE-Nummer CVE-2014-8090 registriert. Wir empfehlen dringend, Ruby zu aktualisieren.
Details
Dies ist ein zusätzlicher Patch für CVE-2013-1821 und CVE-2014-8080. Die vorherigen Patches haben rekursive Expansionen an vielen Stellen und die Gesamtgröße erzeugter Strings behoben. Sie berücksichtigten jedoch nicht das frühere Limit für die Entitätsexpansion. Eine Auslastung von 100% der CPU kann durch rekursive Expansion mit einem leeren String verursacht werden. Beim Lesen von Textknoten aus einem XML-Dokument kann der REXML-Parser dazu gebracht werden, extrem große Zeichenkettenobjekte zu allozieren, was den gesamten Speicher einer Maschine verbrauchen und einen Denial of Service verursachen kann.
Betroffener Code sieht ungefähr so aus:
require 'rexml/document'
xml = <<XML
<!DOCTYPE root [
# ENTITY expansion vector
]>
<cd></cd>
XML
p REXML::Document.new(xml)Alle Benutzer, die eine betroffene Version ausführen, sollten entweder ein Upgrade durchführen oder umgehend eine der Problemumgehungen verwenden.
Betroffene Versionen
- Alle Ruby 1.9 Versionen vor Ruby 1.9.3 patchlevel 551
- Alle Ruby 2.0 Versionen vor Ruby 2.0.0 patchlevel 598
- Alle Ruby 2.1 Versionen vor Ruby 2.1.5
- vor Trunk Revision 48402
Problemumgehungen
Wenn Sie Ruby nicht aktualisieren können, verwenden Sie diesen Monkey Patch als Workaround
class REXML::Document
def document
self
end
endCredits
Vielen Dank an Tomas Hoger für die Meldung dieses Problems.
Verlauf
- Ursprünglich veröffentlicht am 2014-11-13 12:00:00 UTC
Aktuelle Nachrichten
Ruby 4.0.0 veröffentlicht
Wir freuen uns, die Veröffentlichung von Ruby 4.0.0 bekannt zu geben. Ruby 4.0 führt „Ruby Box“ und „ZJIT“ ein und bringt viele Verbesserungen mit sich.
Veröffentlicht von naruse am 25. Dez 2025
Ein neuer Look für Rubys Dokumentation
Nach dem Redesign von ruby-lang.org gibt es weitere Neuigkeiten zur Feier des 30-jährigen Jubiläums von Ruby: docs.ruby-lang.org hat ein komplett neues Erscheinungsbild mit Aliki – dem neuen Standard-Theme von RDoc.
Veröffentlicht von Stan Lo am 23. Dez 2025
Neues Website-Erscheinungsbild
Wir freuen uns, ein umfassendes Redesign unserer Website bekannt zu geben. Das Design für dieses Update wurde von Taeko Akatsuka erstellt.
Veröffentlicht von Hiroshi SHIBATA am 22. Dez 2025
Ruby 4.0.0 preview3 veröffentlicht
Wir freuen uns, die Veröffentlichung von Ruby 4.0.0-preview3 bekannt zu geben. Ruby 4.0 führt Ruby::Box und „ZJIT“ ein und bringt viele Verbesserungen mit sich.
Veröffentlicht von naruse am 18. Dez 2025