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
end

Credits

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

Weitere Neuigkeiten...