CVE-2021-41817: Vulnérabilité de déni de service d'expression régulière (ReDoS) sur les méthodes d'analyse de date

Nous avons publié les versions 3.2.1, 3.1.2, 3.0.2 et 2.0.1 de la gemme date qui incluent un correctif de sécurité pour une vulnérabilité de déni de service d’expression régulière (ReDoS) sur les méthodes d’analyse de date. Un attaquant peut exploiter cette vulnérabilité pour provoquer une attaque DoS efficace. Cette vulnérabilité a reçu l’identifiant CVE CVE-2021-41817.

Détails

Les méthodes d’analyse de date, y compris Date.parse, utilisent des expressions régulières en interne, dont certaines sont vulnérables au déni de service d’expression régulière (ReDoS). Les applications et bibliothèques qui utilisent de telles méthodes à des entrées non fiables peuvent être affectées.

Le correctif limite la longueur d’entrée jusqu’à 128 octets par défaut au lieu de modifier les expressions régulières. La raison est que la gemme Date utilise de nombreuses expressions régulières donc il existe peut-être des expressions régulières vulnérables non découvertes. Pour des raisons de compatibilité, il est permis de supprimer la limitation en passant explicitement le mots-clé limit à nil comme Date.parse(str, limit: nil), mais notez que l’analyse peut prendre beaucoup de temps.

Veuillez mettre à jour la gemme de date vers la version 3.2.1, 3.1.2, 3.0.2, 2.0.1 ou ultérieure. Vous pouvez utiliser gem update date pour la mettre à jour. Si vous utilisez bundler, veuillez ajouter gem "date", ">= 3.2.1" à votre Gemfile. Vous pouvez également mettre à jour Ruby vers la version 3.0.3, 2.7.5, 2.6.9 ou ultérieure.

Versions concernées

  • Gemme date 2.0.0 ou antérieure (qui sont des versions inclusent dans la branche Ruby 2.6 avant la version Ruby 2.6.9)
  • Gemme date 3.0.1 ou antérieure (qui sont des versions inclusent dans la branche Ruby 2.7 avant la version Ruby 2.7.5)
  • Gemme date 3.1.1 ou antérieure (qui sont des versions inclusent dans la branche Ruby 3.0 avant la version Ruby 3.0.3)
  • Gemme date 3.2.0 ou antérieure

Remerciements

Merci à svalkanov pour la découverte de ce problème.

Historique

  • Paru initialement le 2021-11-15 08:00:00 (UTC)
  • Mention concernant les nouvelles versions de Ruby le 2021-11-24 13:20:00 (UTC)