CVE-2015-1855: Ruby OpenSSL верифициране на хост

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

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

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

Детайли

След преглед на RFC 6125 и 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 и пачнат от Tony Arcieri и Hiroshi Nakamura.

История

  • Първоначално обявен на 2015-04-13 12:00:00 (UTC)