CVE-2015-1855: Vérification des noms d'hôte par Ruby OpenSSL

L’extension OpenSSL de Ruby souffre d’une faille rendant la correspondance trop permissive des noms d’hôte, cela peut mener à des bugs similaires à CVE-2014-1492. Des problèmes similaires ont été identifiés dans Python.

Cette faille a reçu l’identifiant CVE CVE-2015-1855.

Nous vous recommandons vivement de mettre à jour Ruby.

Détails

Après relecture de la RFC 6125 et de la RFC 5280, nous avons trouvé plusieurs violations de la correspondance des noms d’hôtes et plus particulièrement avec les certficats wildcard.

L’extension OpenSSL de Ruby fournira dorénavant un algorithme de correspondance par chaîne de caractères qui a un comportement plus stricte, comme spécifié par ces RFCs. Plus particulièrement, la correspondance de plusieurs wildcard par sujet/SAN n’est plus autorisée. Enfin, la comparaison de ces valeurs est insensible à la casse.

Ce changement s’opère dans le comportement de la méthode OpenSSL::SSL#verify_certificate_identity.

Spécifiquement:

  • Seul un caractère wildcard dans la partie gauche du nom d’hôte est autorisé.
  • Les noms IDNA peuvent désormais être trouvé seulement par un simple wikdcard (ex: ‘*.domain’).
  • Sujet/SAN doivent être limité aux caractères ASCII seuelement.

Tous les utilisateurs utilisant une version affectée doivent mettre à jour immédiatement.

Versions concernées

  • Toutes les versions de Ruby 2.0 antérieures à Ruby 2.0.0-p645
  • Toutes les versions de Ruby 2.1 antérieures à Ruby 2.1.6
  • Toutes les versions de Ruby 2.2 antérieures à Ruby 2.2.2
  • toutes révisions antérieures à la révision 50292 du trunk

Crédits

Merci à Tony Arcieri, Jeffrey Walton, et Steffan Ullrich pour avoir signalé cette faille. Signalée à l’origine par Bug #9644, et correctif soumis par Tony Arcieri et Hiroshi Nakamura.

Historique

  • Publié à l’origine le 13/04/2015 à 12h00 (UTC)