Geschrieben von usa am 17.10.2018
Übersetzt von Marvin Gülker
Die Gleichheitsprüfung mit OpenSSL::X509::Name
, die in der
mit Ruby ausgelieferten OpenSSL-Erweiterungsbibliothek enthalten ist,
funktioniert nicht richtig. Diese Sicherheitslücke wurde die CVE-Nummer
CVE-2018-16395
zugewiesen.
Details
Eine Instanz von OpenSSL::X509::Name
enthält Elemente wie CN, C,
usw. Zwei Instanzen von OpenSSL::X509::Name
sind nur dann gleich,
wenn alle diese Elemente genau gleich sind. Es gibt aber einen Fehler
in der Gleichheitsprüfungsroutine, der dazu führt, dass die
Gleichheitsprüfung ein falsches Ergebnis liefert, wenn der Wert eines
Elements des Arguments (rechte Seite) mit dem Wert des entsprechenden
Empfängerelements (linke Seite) beginnt. Wenn ein so präpariertes
X.509-Zertifikat mit einem bestehenden Zertifikat verglichen wird,
kann es passieren, dass die zwei Zertifikate fälschlicherweise für
gleich gehalten werden.
Es wird dringlichst empfohlen, so bald wie möglich die eigene Ruby-Installation zu aktualisieren oder den nachfolgenden Workaround anzuwenden.
Betroffene Versionen
- Ruby 2.3er-Serie: 2.3.7 und früher
- Ruby 2.4er-Serie: 2.4.4 und früher
- Ruby 2.5er-Serie: 2.5.1 und früher
- Ruby 2.6er-Serie: 2.6.0-preview2 und früher
- Trunk vor Revision r65139
Workaround
Das Problem ist im OpenSSL-Gem mit Version 2.1.2 und später behoben worden. Wenn Sie Ruby 2.4 oder neuer einsetzen, können Sie daher auch das OpenSSL-Gem auf die neueste Version aktualisieren.
gem install openssl -v ">= 2.1.2"
Dies ist jedoch in der 2.3er-Serie von Ruby nicht möglich, da die mitgelieferte Version des OpenSSL-Gems hier nicht überschrieben werden kann. In diesem Fall müssen Sie Ihre Ruby-Installation auf die neueste Version aktualisieren.
Dankasgung
Dank an Tyler Eckstein, der den Fehler gemeldet hat.
Historie
- Erstveröffentlichung am 2018-10-17 14:00:00 (UTC)
- Erwähne die Trunk-Revision, in der das Problem behoben wurde am 2018-10-19 00:00:00 (UTC)