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

Расширение OpenSSL для Ruby имеет уязвимость из-за слишком свободного сравнения имен хостов, что может вести к багам, аналогичным CVE-2014-1492. Похожие проблемы были найдены в Python.

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

Мы настойчиво рекомендуем вам обновить Ruby.

Детали

После рассмотрения RFC 6125 и RFC 5280, мы нашли несколько нарушений в сравнении имен хостов и особенно шаблонного (wildcard) сертификатов.

OpenSSL расширение для Ruby теперь предоставляет более строгий строчный алгоритм сравнения в соответствии с рекомендациями этих RFC. В особенности, сравнение более одного шаблонного сертификата с объектом/SAN не разрешено. Так же, как и сравнение этих значений теперь не зависит от регистра.

Это изменение затронет поведение Ruby метода OpenSSL::SSL#verify_certificate_identity.

Подробно:

  • Разрешен только один шаблонный символ в самой левой части имени хоста.
  • IDNA имена теперь могут быть сравнены лишь по простейшему шаблону (например, ‘*.domain’).
  • Объект/SAN должен состоять только из ASCII символов.

Все пользователи, использующие затронутые релизы, должны обновиться немедленно.

Затронутые версии

  • Все версии Ruby 2.0 до 2.0.0-p645
  • Все версии Ruby 2.1 до 2.1.6
  • Все версии Ruby 2.2 до 2.2.2
  • trunk до ревизии 50292

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

Спасибо Tony Arcieri, Jeffrey Walton, и Steffan Ullrich за сообщение об этой проблеме. Оригинал проблемы добавлен как Bug #9644, и патчи для него прислали Tony Arcieri и Hiroshi Nakamura.

История

  • Оригинал опубликован 2015-04-13 12:00:00 (UTC)