À l’aide d’un fichier WebP sans perte spécialement conçu, libwebp peut écrire des données en dehors des limites du tas. La fonction ReadHuffmanCodes() alloue le tampon HuffmanCode avec une taille provenant d’un tableau de tailles précalculées : kTableSize. La valeur color_cache_bits définit quelle taille utiliser », lit-on dans l’avis. « Le tableau kTableSize prend en compte uniquement les tailles pour les recherches de table de premier niveau sur 8 bits, mais pas pour les recherches de table de deuxième niveau. libwebp autorise des codes allant jusqu’à 15 bits (MAX_ALLOWED_CODE_LENGTH). Lorsque BuildHuffmanTable() tente de remplir les tables de deuxième niveau, il peut écrire des données en dehors des limites. L’écriture en dehors des limites du tableau sous-dimensionné se produit dans ReplicateValue. »
Un attaquant peut exploiter cette vulnérabilité en utilisant un fichier WebP sans perte spécialement conçu et parvenir à exécuter un code arbitraire.
Le problème a fait la une sous d’autres CVE car il était activement exploité pour déployer un logiciel espion de surveillance, et il a été suivi séparément en tant que CVE-2023-41064 et CVE-2023-4863.
Début septembre, des chercheurs de Citizen Lab ont signalé que les failles zero-day exploitées activement (CVE-2023-41064 et CVE-2023-41061) corrigées par Apple étaient utilisées pour infecter des appareils avec le logiciel espion Pegasus du groupe NSO.
Selon les chercheurs, les deux vulnérabilités étaient combinées dans le cadre d’une exploitation sans clic, nommée BLASTPASS, utilisée dans des attaques sur des iPhones exécutant la dernière version d’iOS (16.6).
Les chercheurs de Rezilion ont rapporté que la portée de cette vulnérabilité est beaucoup plus large que ce qui était initialement prévu.
Les experts ont identifié la bibliothèque vulnérable dans plusieurs images de conteneurs populaires, téléchargées et déployées collectivement des milliards de fois, telles que Nginx, Python, Joomla, WordPress, Node.js, et bien d’autres.
« Alors que la vulnérabilité semble initialement cibler les applications basées sur Chromium, maintenant que nous en savons plus, nous comprenons qu’elle a le potentiel d’affecter un éventail beaucoup plus large de logiciels et d’applications reposant sur le package libwebp ubiquitaire pour la fonctionnalité de codec WebP », indique l’analyse publiée par Rezilion. « Ce package se distingue par son efficacité, surpassant JPEG et PNG en termes de taille et de vitesse. Par conséquent, de nombreux logiciels, applications et packages ont adopté cette bibliothèque, voire même adopté des packages dont libwebp est la dépendance, créant un défi complexe lors de la tentative d’identification des systèmes vulnérables. La prévalence même de libwebp étend considérablement la surface d’attaque, suscitant de graves préoccupations tant pour les utilisateurs que pour les organisations. »
Rezilion a souligné que ce problème peut potentiellement affecter des millions d’applications différentes dans le monde entier.