WEBrick hat eine Escape-Sequenz-Injection-Schwachstelle
Gepostet von Urabe Shyouhei am 10. Jan 2010
Eine Schwachstelle wurde in WEBrick, einem Teil der Ruby-Standardbibliothek, gefunden. WEBrick ermöglicht es Angreifern, bösartige Escape-Sequenzen in seine Protokolle einzuschleusen, wodurch gefährliche Steuerzeichen auf dem Terminal-Emulator eines Opfers ausgeführt werden können.
Wir haben bereits eine Korrektur dafür. Veröffentlichungen für alle aktiven Zweige werden dieser Ankündigung folgen. Vorläufig empfehlen wir Ihnen jedoch, Ihre WEBrick-Protokolle nicht zu betrachten, bis Sie Ihren WEBrick-Prozess aktualisiert haben.
Detaillierte Beschreibung
Terminal-Escape-Sequenzen werden verwendet, um verschiedene Arten der Interaktion zwischen einem Terminal und einem internen Prozess zu ermöglichen. Das Problem ist, dass diese Sequenzen nicht von nicht vertrauenswürdigen Quellen ausgegeben werden sollten; wie z.B. Netzwerk-Inputs. Wenn ein entfernter Angreifer Escape-Sequenzen in WEBrick-Protokolle einspeisen könnte und ein Opfer diese zufällig über sein Terminal abruft, könnte der Angreifer verschiedene Schwachstellen in Terminal-Emulatoren ausnutzen.
Und WEBrick versagt bei der Filterung dieser Terminal-Escape-Sequenzen.
Beispiel
% xterm -e ruby -rwebrick -e 'WEBrick::HTTPServer.new(:Port=>8080).start' &
% wget https://:8080/%1b%5d%32%3b%6f%77%6e%65%64%07%0a
Achten Sie auf den Fenstertitel von xterm.
Betroffene Versionen
- Ruby 1.8.6 Patchlevel 383 und alle früheren Versionen
- Ruby 1.8.7 Patchlevel 248 und alle früheren Versionen
- Entwicklungsversionen von Ruby 1.8 (1.8.8dev)
- Ruby 1.9.1 Patchlevel 376 und alle früheren Versionen
- Entwicklungsversionen von Ruby 1.9 (1.9.2dev)
Lösungen
- Korrekturen für 1.8.6, 1.8.7 und 1.9.1 werden dieser Ankündigung folgen.
- Update 1.8.7 pl. 249 wurde veröffentlicht, um dieses Problem zu beheben. 1.8.7-Benutzer werden ermutigt, ein Upgrade durchzuführen.
- Update 1.9.1 pl. 378 wurde veröffentlicht, um dieses Problem zu beheben. 1.9.1-Benutzer werden ermutigt, ein Upgrade durchzuführen.
- Update 1.8.6 pl. 388 wurde veröffentlicht, um dieses Problem zu beheben. 1.8.6-Benutzer werden ermutigt, ein Upgrade durchzuführen.
- Für Entwicklungsversionen aktualisieren Sie bitte auf die neueste Revision für jeden Entwicklungszweig.
Danksagung
Dank an Giovanni "evilaliv3" Pellerano, Alessandro "jekil" Tanasi und Francesco "ascii" Ongaro für die Entdeckung dieser Schwachstelle.
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