Angreifer können eigenen Code im Ruby-Programm ausführen Schwachstelle in Ruby-Gems ermöglicht Datendiebstahl

Von Thomas Joos 2 min Lesedauer

Anbieter zum Thema

Aktuell gibt es Schwachstellen bei RDoc- und StringIO-Gems, über die Angreifer Code im Ruby-Programm ausführen können. Dadurch sind Cyberangriffe und Datendiebstahl möglich. Ein Update steht zur Verfügung.

Die Schwachstellen bei RDoc- und StringIO-Gems ermöglichen Angreifern Code-Ausführung und Datendiebstahl.(Bild:  Maximusdn - stock.adobe.com)
Die Schwachstellen bei RDoc- und StringIO-Gems ermöglichen Angreifern Code-Ausführung und Datendiebstahl.
(Bild: Maximusdn - stock.adobe.com)

Entwickler, die auf die Ruby-Gems RDoc und StringIO setzen, sind aktuell mit zwei Sicherheitslücken konfrontiert. Es ist generell empfehlenswert die eingesetzte Version zu prüfen und zu aktualisieren.

CVE-2024-27281: RCE-Schwachstelle mit .rdoc_options in RDoc

Ein Problem wurde in RDoc 6.3.3 bis 6.6.2 entdeckt, wie es in Ruby 3.x bis 3.3.0 bereitgestellt wird. Beim Parsen von .rdoc_options (verwendet für die Konfiguration in RDoc) als YAML-Datei sind Objektinjektion und daraus resultierende Remote­code­ausführung möglich, da es keine Beschränkungen für die Klassen gibt, die wiederhergestellt werden können. Beim Laden des Dokumentations-Caches sind Objektinjektion und daraus resultierende Remotecode-Ausführung auch möglich, wenn es einen manipulierten Cache gibt.

Dadurch können Angreifer die Lücke CVE-2024-27281 in RDoc ausnutzen. Hier können Angreifer eigenen Code einschleusen und im Kontext des entsprechenden Programms ausführen. Betroffen sind:

  • Ruby 3.0.6 oder älter
  • Ruby 3.1.4 oder älter
  • Ruby 3.2.3 oder älter
  • Ruby 3.3.0
  • RDoc gem 6.3.3 oder älter, 6.4.0 bis 6.6.2 ohne installierte Updates (6.3.4, 6.4.1, 6.5.1)

Ab den Versionen 6.3.4.1 in Ruby 3.0 und 6.4.1.1 in Ruby 3.1 ist die Lücke geschlossen.

CVE-2024-27280: Buffer-Overread-Schwachstelle in StringIO

Ein weiteres Problem wurde in StringIO 3.0.1 entdeckt, also vor allem in Ruby 3.0.x bis 3.0.6 und 3.1.x bis 3.1.4. Die ungetbyte- und ungetc-Methoden auf einer StringIO können über das Ende einer Zeichenkette hinaus lesen, und ein nachfolgender Aufruf von StringIO.gets kann den Speicherwert zurückgeben. Diese Schwachstelle betrifft nicht StringIO 3.0.3 und später sowie Ruby 3.2.x und später.

Beim Gem StringIO kann es dadurch zu einem Buffer Overread kommen. Verursacht wird dieser durch die entdeckte Lücke CVE-2024-27280. Auch dazu gibt es einen eigenen Eintrag im News-Bereich von Ruby. Dabei gibt es System ungewollt Daten weiter. Dadurch können Angreifer geheime Informationen auslesen. Zusammen mit der Lücke CVE-2024-27281 können Angreifer daher Code einschleusen und auf Basis dieses Codes oder mit anderen Aktionen Informationen auslesen. Betroffen sind:

  • Ruby 3.0.6 oder älter
  • Ruby 3.1.4 oder älter
  • StringIO gem 3.0.2 oder älter

(ID:49979519)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung