Уязвимость проверки имени хоста в SSL клиенте (CVE-2013-4073)

Опубликовал nahi 27-06-2013
Перевел: gazay

Уязвимость в SSL клиенте Ruby, которая может позволить man-in-the-middle (человек-посередине) атаки, чтобы обмануть SSL сервера через использование валидного сертификата, выданного доверенным центром сертификации.

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

Суммарно

SSL клиент Ruby проводит проверку имени хоста, но он не может верно отсеивать хосты в сертификатах, которые содержат ноль байт.

Детали

OpenSSL::SSL.verify_certificate_identity воспроизводит RFC2818 проверку сервера для SSL клиента Ruby, но он не верно отсеивает хосты в subjectAltName X509 расширении, которое содержит ноль байт.

Существующий код в lib/openssl/ssl.rb использует OpenSSL::X509::Extension#value для получения идентификации от subjectAltName. Extension#value зависит от функции OpenSSL X509V3_EXT_print() и для dNSName из subjectAltName она утилизирует sprintf(), что известно, как “null byte unsafe”. Как результат, Extension#value возвращает ‘www.ruby-lang.org’, если subjectAltName равно ‘www.ruby-lang.org\0.example.com’ и OpenSSL::SSL.verify_certificate_identity неверно идентифицирует сертификат, как один из сертификатов для ‘www.ruby-lang.org’.

Когда CA, который проверен клиентом SSL, разрешает запросить сертификат сервера, который имеет ноль байт в subjectAlnName, удаленные злоумышленники могут получить сертификат для ‘www.ruby-lang.org\0.example.com’ из CA, чтобы обмануть ‘www.ruby-lang.org’ и сделать атаку человек-посредине между SSL клиентом Ruby и SSL серверами.

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

  • Все версии ruby 1.8 до ruby 1.8.7 patchlevel 374
  • Все версии ruby 1.9 до ruby 1.9.3 patchlevel 448
  • Все версии ruby 2.0 до ruby 2.0.0 patchlevel 247
  • транк до ревизии 41671

Решение

Всем пользователям рекомендуется обновиться до Ruby 2.0.0-p247, 1.9.3-p448 или 1.8.7-p374.

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

Уязвимость обнаружил William (B.J.) Snow Orvis и координировал через security@ruby-lang.org David Thiel из iSec Partners.

История

  • Оригинал опубликован 2013-06-27 11:00:00 (UTC)

Последние новости

Новый облик документации Ruby

Вслед за редизайном ruby-lang.org, у нас есть еще новости в честь 30-летия Ruby: docs.ruby-lang.org получил полностью новый облик с Aliki — новым стандартным шаблоном RDoc....

Опубликовал Stan Lo 23-12-2025

Вышел Ruby 4.0.0 preview3

Мы рады сообщить о выпуске Ruby 4.0.0-preview3. Ruby 4.0 представляет Ruby::Box и «ZJIT», а также содержит множество улучшений.

Опубликовал naruse 18-12-2025

Больше новостей...