CVE-2019-15845: Einfügung von NUL-Zeichen möglich in File.fnmatch und File.fnmatch?

In zwei Kernmethoden von Ruby (File.fnmatch und File.fnmatch?) wurde eine Sicherheitslücke gefunden. Ein Angreifer, der das als Argument übergebene Muster kontrollieren kann, kann diese Sicherheitslücke ausnutzen, um die Musterprüfung eines Pfads entgegen der Absicht des Programmautors gelingen zu lassen. Man hat dieser Sicherheitslücke die CVE-Nummer CVE-2019-15845 zugewiesen.

Details

Die Kernmethode File.fnmatch und ihr Alias File.fnmatch? akzeptieren als ersten Parameter ein Pfadmuster. Wenn dieses Muster ein NUL-Zeichen (\0) enthält, glauben diese Methoden, dass das Muster unmittelbar vor dem NUL-Zeichen zu Ende sei. Wenn ein Skript externe Eingaben als Pfadmuster übergibt, kann ein Angreifer das ausnutzen, um eine fälschliche positive Erkennung des als zweites Argument übergebenen Pfads auszulösen.

Alle Nutzer betroffene Versionen sollten so schnell wie möglich aktualisieren.

Betroffene Versionen

  • Alle Versionen bis einschließlich Ruby 2.3
  • Ruby 2.4er-Serie: Ruby 2.4.7 und früher
  • Ruby 2.5er-Serie: Ruby 2.5.6 und früher
  • Ruby 2.6er-Serie: Ruby 2.6.4 und früher
  • Ruby 2.7.0-preview1
  • Master vor Revision a0a2640b398cffd351f87d3f6243103add66575b

Danksagung

Dank an ooooooo_q, der das Problem entdeckt hat.

Historie

  • Erstveröffentlicht am 2019-10-01 11:00:00 (UTC)