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][CVE-2014-1492] führen kann. Ähnliche Probleme wurden
in [Python][python-hostname-bug] gefunden.

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

Wir empfehlen Ihnen dringend Ruby zu aktualisieren.

## Details

Nachdem wir [RFC 6125][RFC-6125] und [RFC 5280][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][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)

[CVE-2014-1492]: https://bugzilla.mozilla.org/show_bug.cgi?id=903885
[python-hostname-bug]: https://bugs.python.org/issue17997
[CVE-2015-1855]: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1855
[RFC-6125]: https://tools.ietf.org/html/rfc6125
[RFC-5280]: https://tools.ietf.org/html/rfc5280
[Bug-9644]: https://bugs.ruby-lang.org/issues/9644
