Разширението за OpenSSL на Ruby страда от уязвимост при match-ване на
hostnames, което води до бъгове като [CVE-2014-1492][CVE-2014-1492].
Подобен проблем бе открит и в [Python][python-hostname-bug].

За тази уязвимост е определен CVE идентификатор [CVE-2015-1855][CVE-2015-1855].

Силно препоръчваме да обновите версията на Ruby, която използвате.

## Детайли

След преглед на [RFC 6125][RFC-6125] и [RFC 5280][RFC-5280] открихме множесто
нарушения при match-ването на hostname-ове и специфично wildcard сертификати.

Разширението за OpenSSL на Ruby вече ще използва алгоритъм за match-ване,
базиран на низове, който ще има _по-стриктно_ поведение, както е описано от
тези RFC. Съчетаването на повече от един wildcard със SAN вече няма да е
позволено. Освен това, сравнението на тези стойности вече ще различава
главни и малки букви.

Това ще промени поведението на `OpenSSL::SSL#verify_certificate_identity`.

По-специално:

* Позволен е само един wildcard знак в най-лявата част на hostname-а.
* IDNA имена вече могат да бъдат match-нати само от прост wildcard (напр. '\*.domain').
* Subject/SAN трябва да съдържа само ASCII символи.

Всички потребители, използващи засегнати версии, трябва да обновят веднага.

## Засегнати версии

* Всички Ruby 2.0 версии преди пач 645
* Всички Ruby 2.1 версии преди Ruby 2.1.6
* Всички Ruby 2.2 версии преди Ruby 2.2.2
* Всички преди trunk revision 50292

## Благодарности

Благодарности на Tony Arcieri, Jeffrey Walton и Steffan Ullrich за докладването
на проблема. Първоначално докладван като [Бъг #9644][Bug-9644] и пачнат от Tony
Arcieri и Hiroshi Nakamura.

## История

* Първоначално обявен на 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
