CVE-2018-8779: Fehlerhafte Socket-Erstellung durch NUL-Byte in UNIXServer und UNIXSocket

Die in Ruby enthaltene Methode UNIXServer.open erstellt Sockets fehlerhaft, außerdem kann man UNIXSocket.open dazu bewegen, andere als die gewünschten Sockets zu öffnen. Die Schwachstellen führen die CVE-Nummer CVE-2018-8779.

Details

UNIXServer.open nimmt als Parameter den Pfad entgegen, an dem der Socket erstellt werden soll. Enthält das Argument ein NUL-Byte (\0), glaubt die Methode, dass der Pfad vor dem NUL-Byte zu Ende ist. Das kann ein Angreifer ausnutzen, um den Socket in einem unerwünschten Verzeichnis zu erstellen, wenn ein Skript Nutzereingaben direkt als Argument an die genannte Methode weiterreicht.

Ähnlich verhält es sich mit UNIXSocket.open; auch diese Methode nimmt einen Zielpfad entgegen und auch hier kann man mit einem NUL-Byte die Methode glauben machen, dass der Pfad vor dem NUL-Byte zu Ende sei. Benutzt ein Skript Nutzereingaben als Argument für diese Methode, kann ein Angreifer das ausnutzen, um einen anderen als den gewünschten Socket zu öffnen.

Alle Nutzer betroffener Versionen sollten umgehend aktualisieren.

Betroffene Versionen

  • Ruby 2.2er-Serie: 2.2.9 und früher
  • Ruby 2.3er-Serie: 2.3.6 und früher
  • Ruby 2.4er-Serie: 2.4.3 und früher
  • Ruby 2.5er-Serie: 2.5.0 und früher
  • Ruby 2.6er-Serie: 2.6.0-preview1
  • Trunk vor Revision r62991

Credit

Dank an ooooooo_q, der den Fehler gemeldet hat.

Historie

  • Erstveröffentlicht am 2018-03-28 14:00:00 (UTC)