CVE-2015-1855: Verificación de nombre de host en OpenSSL de Ruby

La extensión de OpenSSL tiene una vulnerabilidad a través de un sistema de empate de nombres demasiado flexible, que puede llevar a algunos problemas como CVE-2014-1492.

Problemas similares fueron encontrados en Python.

A esta vulnerabilidad se le ha asignado el identificador CVE-2015-1855.

Les recomendamos urgentemente que actualicen Ruby.

Detalles

Después de revisar RFC 6125 y RFC 5280, encontramos varias violaciones a la manera en que se hace el empate de nombres de host particularmente con certificados de estrella.

La extensión de OpenSSl de Ruby ahora va a proveer un algoritmo de empate basado en cadenas que sigue un comportamiento más estricto, como recomiendan los RFC mencionados.

En particular, el empate de más de una de las estrellas por sujeto/SAN ya no será permitido. Así como también la comparación de estos valores ahora va a tomar en cuenta la diferencia entre mayúsculas y minúsculas.

Este cambio va a afectar el comportamiento de la función OpenSSL::SSL#verify_certificate_identity.

Específicamente:

  • Solamente será permitido un carácter de estrella en la parte izquierda de el nombre de host.
  • Los nombres IDNA ahora solo serán empatados con una estrella (e.g. ‘*.dominio’)
  • Sujeto/SAN ahora estará limitado solo a caracteres válidos ASCII.

Todos los usuarios usando una versión afectada deberían actualizar inmediatamente.

Versiones Afectadas

  • Todas las versiones de Ruby 2.0 posteriores a 2.0.0-p645
  • Todas las versiones de Ruby 2.1 posteriores a 2.1.6
  • Todas las versiones de Ruby 2.2 posteriores a 2.2.2
  • Cualquier versión posterior a la revisión 50292

Creditos

Agradecemos a Tony Arcieri, Jeffrey Walton, y Steffan Ullrich por reportar el problema. Originalmente fue reportado como Bug #9644, y con los parches enviados por Tony Arcieri y Hiroshi Nakamura.

Historia

  • Publicado originalmente 2015-04-13 12:00:00 (UTC)