CVE-2018-16395: Comparación de igualdad de OpenSSL::X509::Name no opera correactamente

La comparación de igualdad de OpenSSL::X509::Name no es correcta en la librería de la extensión de openssl empaquetada con Ruby. A esta vulnerabilidad se le ha asignado el identificador CVE CVE-2018-16395.

Detalles

Una instancia de OpenSSL::X509::Name contiene entidades tales como CN, C, y así sucesivamente. Un par de instancias de OpenSSL::X509::Name son iguales sólo cuando todas las entidades son exactamente iguales. Sin embargo, hay una falla en la comparación de igualdad, de modo que no da un resultado correcto si el valor de la entidad de uno de los argumentos (el del lado derecho) comienza con el valor recibido (lado izquierdo). Así, que al pasar un certificado X.509 malicioso para compararlo con un certificado existente, hay la posibilidad de que se juzguen erradamente como iguales.

Se recomienda con enfásis a los usuarios de Ruby actualizar su instalación de ruby o aplicar una de las siguientes mitigaciones tan pronto como sea posible.

Versiones afectadas

  • Serie Ruby 2.3: 2.3.7 y anteriores
  • Serie Ruby 2.4: 2.4.4 y anteriores
  • Serie Ruby 2.5: 2.5.1 y anteriores
  • Serie Ruby 2.6: 2.6.0-preview2 y anteriores
  • Antes de la revisión r65139 de trunk

Mitigación

La gema openssl 2.1.2 y posteriores incluye una solución para la vulnerabilidad así que actualice la gema de openssl a la versión más reciente si usa Ruby 2.4 o un serie posterior.

gem install openssl -v ">= 2.1.2"

Sin embargo, para la serie Ruby 2.3, no podrá sobrecargar la versión de openssl enpaqueta con la gema openssl. Por favor actualice su instalación de Ruby a la versión más reciente.

Credito

Agradecimientos a Tyler Eckstein por reportar el problema.

Historia

  • Publicada originalmente el 2018-10-17 14:00:00 (UTC)
  • Mención a la revisión arreglada en trunk el 2018-10-19 00:00:00 (UTC)