Certains bogues peuvent être corrigés en quelques heures, d'autres demandent un peu plus de temps, et puis il y a ceux qui gâchent le week-end à tout le monde. Cloudbleed entre dans cette dernière catégorie. Grâce à un effort combiné entre les ingénieurs de Google et l'équipe de Cloudflare, les effets négatifs de la vulnérabilité ont déjà été neutralisés, mais le problème est que les sites soutenus par le fournisseur de CDN et de sécurité ont filtré des données privées pendant des mois, et on ne sait pas si quelqu'un de malveillant écoutait...
Tout a commencé avec un tweet envoyé par Tavis Ormandy du Project Zero de Google à l'équipe de sécurité de Cloudflare : « Contactez-moi en urgence ». C'était le 17 février dernier. Vendredi. En quelques heures, Cloudflare a déterminé que sa plateforme souffrait de l'une des vulnérabilités web les plus graves de ces dernières années, avec des caractéristiques similaires à celles de Heartbleed. La société a mis moins d'une heure (44 minutes pour être exact) à mettre en œuvre son plan d'atténuation initial, ce qui, d'un certain point de vue, en dit long. Même avec le week-end à venir, Cloudflare a coordonné des équipes à San Francisco et à Londres pour reproduire le problème, en détecter la cause, puis écraser le bug. Son explication au public... a pris un peu plus de temps.
En termes simples, Cloudbleed était un débordement de tampon. Cloudflare a décidé d'utiliser un nouvel analyseur syntaxique HTML (parser), cf-html, en remplacement de son parser actuel basé sur Ragel. En adaptant le code de cf-html et de Ragel à sa plateforme, un bug a été introduit (qui « n'est » pas dans les parsers, mais dans l'implémentation de Cloudflare) par lequel les informations traitées étaient écrites ailleurs après avoir rempli le tampon. Et le point clé ici est « ailleurs ». Les informations filtrées semblent hors contexte, des déchets si l'on veut. Cependant, l'analyse d'Ormandy a détecté des éléments très perturbants, des mots de passe et des cookies aux clés de chiffrement, des requêtes HTTPS, des messages privés et des réservations d'hôtel. La bombe tombe avec le détail que Google et d'autres moteurs de recherche ont absorbé ces informations dans leurs systèmes de cache... et que la première fuite remonte à septembre de l'année dernière.
Comment cela affecte-t-il l'utilisateur ? Si vous utilisez un site ou un service protégé par Cloudflare, il est recommandé de changer votre mot de passe. Les données disponibles suggèrent plus de quatre millions de sites potentiellement affectés, et dans la liste on trouve des noms comme Patreon, Yelp, OKCupid, BitPay, Uber, 1Password, Zendesk, Medium, Bitdefender, Pastebin, FitBit, Change.org, Feedly, Adafruit... il est impossible de les citer tous. La liste complète se trouve avec un résumé ici, ou en alternative, il est recommandé d'utiliser CloudBleedCheck pour vérifier les domaines concernés. Techniquement, dix jours se sont déjà écoulés depuis Cloudbleed, mais il reste encore des caches à purger.