CVE-2015-1855: Hostname-Überprüfung in Ruby-OpenSSL

Rubys OpenSSL-Erweiterung leidet unter einer Sicherheitslücke, die in einer zu laxen Überprüfung der Anforderungen an die Struktur von Hostnames besteht und welche zu Bugs ähnlich denen in CVE-2014-1492 führen kann. Ähnliche Probleme wurden in Python gefunden.

Der Sicherheitslücke wurde die CVE-Nummer CVE-2015-1855 zugewiesen.

Wir empfehlen Ihnen dringend Ruby zu aktualisieren.

Details

Nachdem wir RFC 6125 und RFC 5280 durchgesehen haben, sind uns mehrere Verletzungen der Überprüfung von Hostnames aufgefallen, insbesondere bei Wildcard-Zertifikaten.

Rubys OpenSSL-Erweiterung bietet nun einen string-basierten Algorithmus, welcher sogar einem strikteren Verhalten folgt als die beiden RFCs empfehlen. So ist es nun nicht mehr erlaubt, mehrere Platzhalter innerhalb eines Subject/SAN zu expandieren. Außerdem werden diese Werte nun ohne Rücksicht auf Groß- und Kleinschreibung verglichen.

Diese Veränderung hat Auswirkungen auf das Verhalten von Rubys OpenSSL::SSL#verify_certificate_identity.

Dabei sind besonders zu nennen:

  • Nur ein Platzhalterzeichen ist im äußeren linken Teil des Hostname erlaubt.
  • IDNA-Namen können nur noch mit einen einfachen Platzhalter realisiert werden (z.B. ‘*.domain’).
  • Subject/SAN sollten auf ASCII-Zeichen begrenzt sein.

Alle Nutzer, die eine betroffene Veröffentlichung verwenden, sollten umgehend aktualisieren.

Betroffene Versionen

  • Alle 2.0er Versionen von Ruby vor Ruby 2.0.0 patchlevel 645
  • Alle 2.1er Versionen von Ruby vor Ruby 2.1.6
  • Alle 2.2er Versionen von Ruby vor Ruby 2.2.2
  • Trunk vor Revision 50292

Danksagung

Dank an Tony Arcieri, Jeffrey Walton und Steffan Ullrich, welche dieses Problem gemeldet haben. Ursprüngliche Meldung ist Bug #9644 und Patches wurden durch Tony Arcieri und Hiroshi Nakamura eingereicht.

Historie

  • Ursprünglich veröffentlicht am 2015-04-13 12:00:00 (UTC)