CVE-2021-41817: Vulnerabilidad de denegación de servicio por Expresiones Reguales en los métodos para reconocer fechas

Hemos publicado la gema date con versiones 3.2.1, 3.1.2, 3.0.2 y 2.0.1 que incluyen una corrección de seguridad a una vulnerabilidad de denegación de servicio por expresiones regulares (ReDoS) en los métodos para reconocer fechas. Un atacante podría explotar esta vulnerabilidad para generar un ataque de denegación de servicio efectivo.

A esta vulnerabilidad se le ha asignado el identificador CVE CVE-2021-41817.

Detalles

Los métodos para reconocer fechas incluyendo Date.parse usan expresiones regulares internamente, algunas de las cuales son vulnerables a denegación de servicio por expresiones regulares. Las aplicaciones y librerías que emplean tales métodos con entradas no confiables pueden verse afectadas.

La corrección limita el tamaño de la entrada a 128 bytes de manera predeterminada en lugar de cambiar las expresiones regulares. Esto es porque la gema Date usa muchas expresiones regulares y es posible que aún haya vulnerabilidades no descubiertas en algunas. Por compatibilidad, se permite eliminar la limitación pasando explícitamente la palabra reservada limit en nil, como en Date.parse(str, limit: nil), pero tenga en cuenta que el reconocimiento puede tardar un largo tiempo.

Por favor actualice la gema date a una de las versiones 3.2.1, 3.1.2, 3.0.2, 2.0.1 o posterior. Puede usar gem update date para actualizarla. Si usa bundler, por favor añada gem "date", ">= 3.2.1" a su Gemfile. De forma alternativa, puede actualizar Ruby a 3.0.3, 2.7.5, 2.6.9 o posterior.

Versiones afectadas

  • gema date 2.0.0 y anteriores (distribuidas con la serie Ruby 2.6 antes de Ruby 2.6.9)
  • gema date 3.0.1 y anteriores (distribuidas con la serie Ruby 2.7 antes de Ruby 2.7.5)
  • gema date 3.1.1 y anteriores (distribuida con la serie Ruby 3.0 antes de Ruby 3.0.3)
  • gema date gem 3.2.0 y anteriores

Créditos

Agradecemos a svalkanov por descubrir el problema.

Historia

  • Publicado originalmente en inglés el 2021-11-15 08:00:00 (UTC)
  • Mención sobre nuevas versiones de Ruby el 2021-11-24 13:20:00 (UTC)