Faille critique WebP zero-day CVE-2023-4863 : un impact sur tout l’écosystème logiciel
28 septembre 2023
0 minutes de lectureLiens rapides
Ce mois-ci, Apple Security Engineering and Architecture (SEA) et The Citizen Lab de la Munk School de l’Université de Toronto ont révélé deux vulnérabilités Critical liées à des images WebP malveillantes, qui pourraient être exploitées contre le navigateur Chrome ainsi que la bibliothèque webmproject/libwebp de Google.
Au 27 septembre 2023, les CVE actuellement associées à cette vulnérabilité libwebp comprennent notamment :
CVE-2023-4863 : publiée le 11 septembre 2023, avec un score CVSS de 9,6. Score EPSS : 31,86 % (97e percentile*). Remarque : cette CVE avait initialement reçu un score de 8,8 (« Élevé »), avant la divulgation de détails supplémentaires.
CVE-2023-5129 : publiée le 25 septembre 2023, avec un score CVSS de 10 (le maximum possible), puis rejetée le 27 septembre 2023 par Google, l’autorité de numérotation CVE désignée, car il s’agissait d’un doublon.
La vulnérabilité identifiée dans la bibliothèque WebP libwebp ne concerne pas uniquement les navigateurs et les applications basées sur Chrome (par exemple, 1Password pour macOS). C’est particulièrement important, car la bibliothèque libwebp est utilisée par de nombreux systèmes d’exploitation et des frameworks d’applications populaires pour afficher des images .webp, notamment le très populaire framework Electron. La vulnérabilité libwebp concerne donc également des logiciels généralistes comme Pillow et d’autres applications telles que ffmpeg et Gimp. Notez que certaines de ces applications et composants logiciels sont intégrés à des images de conteneurs.
Les versions de webmproject/libwebp allant de 0.5.0 à 1.3.1 incluses sont concernées. Veillez à ce que votre système d’exploitation et vos projets logiciels exigent au minimum la version 1.3.2 pour corriger la vulnérabilité. Notez toutefois que libwebp est principalement utilisée indirectement par d’autres logiciels qui l’intègrent, ce qui étend l’impact de cette vulnérabilité à l’ensemble de l’écosystème logiciel.
En réponse à la CVE initiale, Google et d’autres fournisseurs ont rapidement publié des correctifs pour les navigateurs populaires.
Snyk surveille cette vulnérabilité et mettra à jour cet article à mesure que de nouvelles informations seront disponibles. Nous mettrons également à jour Snyk Vulnerability Database avec les dernières données disponibles. Continuez donc à effectuer vos analyses régulières pour sécuriser vos projets. Cette vulnérabilité libwebp montre une nouvelle fois qu’il est essentiel d’analyser régulièrement vos applications et vos images de conteneurs pour y détecter les vulnérabilités et ainsi sécuriser votre chaîne d’approvisionnement logicielle.
Consultez régulièrement cette page ou suivez-nous sur X (@snyksec) pour connaître les dernières actualités et évolutions. Poursuivez votre lecture ci-dessous pour en savoir plus.
EPSS évalue directement les résultats du modèle EPSS. Ces scores donnent une indication globale du risque d’exploitation dans la nature. Le percentile mesure la probabilité EPSS par rapport à l’ensemble des scores EPSS connus. Dans ce cas, CVE-2023-4863 présente une probabilité d’exploitation supérieure à celle de 97 % de toutes les vulnérabilités évaluées : cette vulnérabilité est donc plus susceptible que la plupart d’être exploitée par un acteur malveillant. Ces données sont mises à jour quotidiennement à partir de la dernière version disponible du modèle EPSS. Consultez la documentation EPSS pour en savoir plus.
Quels logiciels utilisent libwebp ?
La vulnérabilité est probablement répandue dans les écosystèmes de développement également, car les langages de programmation de plus haut niveau s’appuient souvent sur la bibliothèque sous-jacente libwebp. Par exemple, le moteur de jeu GoDot, utilisé pour créer des jeux 2D et 3D, dépend de la bibliothèque libwebp, tout comme l’utilitaire FFmpeg, très répandu, qui utilise également la bibliothèque libwebp.
Les spécialistes en sécurité évaluent encore l’étendue complète de son utilisation dans les applications, car la vulnérabilité touche probablement les composants logiciels qui utilisent des codecs d’image .webp et en affichent le contenu (navigateurs, outils de conception, etc.).
Explication de la vulnérabilité libwebp
La bibliothèque libwebp traite les images au format .webp. Créée par Google il y a plus de dix ans, elle est utilisée par la plupart des applications qui affichent des images .webp. La vulnérabilité peut être exploitée à l’aide d’un fichier .webp sans perte conçu de manière malveillante, qui provoque un débordement dans la bibliothèque vulnérable.
Les attaques exploitant cette vulnérabilité peuvent aller du déni de service (DoS) à l’exécution de code à distance (RCE). À titre d’exemple, des attaques étroitement liées, comme l’exploit zero-day BLASTPASS (Apple CVE-2023-41064,CVE-2023-41061), ont montré que des images .webp malveillantes envoyées via iMessage pouvaient compromettre l’appareil iOS d’une victime sans aucune intervention de sa part.
Consultez la page Snyk Vulnerability Database pour en savoir plus et accéder à des analyses détaillées et à des exemples de preuve de concept.
Détecter la vulnérabilité libwebp avec Snyk
Il existe plusieurs façons de détecter la vulnérabilité libwebp avec Snyk. Vous pouvez tester vos projets localement avec la Snyk CLI, les importer dans Snyk à l’aide de nos intégrations SCM, ou utiliser les rapports Snyk pour rechercher rapidement libwebp dans tous les projets que vous avez déjà importés dans Snyk.
Tester vos projets avec la Snyk CLI
Snyk Container peut vous signaler les packages de système d’exploitation qui dépendent de versions vulnérables de libwebp. Snyk peut surveiller vos conteneurs ou vos fichiers Docker via l’interface Web. Vous pouvez également lancer une analyse manuellement à l’aide de la commande CLI : snyk container test.
L’exemple suivant montre comment utiliser la Snyk CLI pour analyser l’image de conteneur Docker python:3.11.1 et vérifier si elle est concernée par la vulnérabilité zero-day libwebp :
Tester des projets C++ avec la CLI
Snyk Open Source peut vous signaler la présence d’une version vulnérable de libwebp parmi les dépendances de votre application C/C++. Snyk peut surveiller vos applications via notre interface Web, ou vous pouvez lancer manuellement l’analyse de vos dépendances open source à l’aide de notre commande CLI : snyk test --unmanaged.
Consultez la documentation utilisateur de Snyk pour en savoir plus sur les fonctionnalités d’analyse C/C++.
Tester vos projets avec l’intégration SCM
L’importation de votre projet dans Snyk à l’aide de nos intégrations SCM prises en charge (GitHub, Bitbucket, GitLab, Azure Repos) déclenche automatiquement une analyse. Vous pouvez ensuite utiliser l’interface Snyk pour détecter, prioriser et corriger la vulnérabilité libwebp dans vos projets.
Utiliser les rapports Snyk pour détecter la vulnérabilité libwebp dans vos projets
Les clients Snyk ayant accès aux rapports Snyk (offre Enterprise) peuvent rapidement repérer libwebp dans les projets déjà importés et surveillés par Snyk. Dans le rapport Issue Details, filtrez sur les CVE suivantes : CVE-2023-5129 AND CVE-2023-4863.

Copiez l’URL pour partager cette vue avec les autres membres de votre équipe, ou exportez-la au format PDF pour la rendre accessible à l’ensemble de l’entreprise.
Si vous détectez le problème, vous pourrez voir exactement où la bibliothèque est utilisée. Cliquez ensuite sur le projet concerné pour obtenir davantage d’informations sur le problème et les instructions de correction.
Prioriser les correctifs
Vous détecterez probablement plusieurs problèmes liés à libwebp dans vos projets et vous vous demanderez par où commencer. Snyk propose plusieurs outils pour vous aider à établir l’ordre des priorités.
Utiliser le Priority Score de Snyk
Le Priority Score de Snyk prend en compte de nombreux facteurs de risque pour vous aider à repérer rapidement les problèmes à traiter en priorité. Il analyse différents signaux, tels que l’EPSS, la maturité de l’exploit, le CVSS et les tendances sur les réseaux sociaux, afin de vous aider à parcourir rapidement la liste des vulnérabilités et à prioriser les correctifs en conséquence. Dans le cas de libwebp, le score sera naturellement élevé dans la plupart des cas.
Le score s’affiche pour chaque problème lié à libwebp sur la page Projects et figure également dans les rapports Snyk.

Utiliser Insights dans Snyk
Les clients Snyk qui utilisent Insights peuvent tirer parti d’informations supplémentaires sur leurs applications pour comprendre quels problèmes présentent le plus de risques.
Insights agrège et met en corrélation les données de toute la plateforme Snyk afin de dresser une vue à 360° de votre application, incluant tous les composants qui la constituent ainsi que le contexte de son déploiement en production. Cette vue permet à Insights de mieux évaluer le risque lié à un problème libwebp en répondant à des questions comme : le problème concerne-t-il votre environnement ? Le code à l’origine du problème est-il déployé ?
Ouvrez l’onglet Insights et utilisez les filtres CVE et l’entonnoir en haut de la page pour repérer rapidement les problèmes libwebp les plus risqués dans vos projets.
Dans l’exemple ci-dessous, deux problèmes libwebp sont signalés comme applicables au système d’exploitation utilisé. Ils sont associés à un conteneur déployé en production et dont le chemin d’accès à Internet est configuré, ce qui représente un risque accru.

Pour comprendre précisément comment le risque est introduit et quel est son lien avec l’application, ouvrez le graphe Evidence pour obtenir davantage de contexte :

Pour en savoir plus sur Insights, sa configuration et son utilisation, consultez notre documentation en ligne.
Comment corriger la vulnérabilité libwebp
Corriger libwebp dans les images de base de conteneurs
Mettez à jour votre image de base en choisissant un tag plus récent qui corrige la vulnérabilité. Pour les écosystèmes pris en charge, vous pouvez générer des demandes de fusion correctives directement depuis Snyk.
Par exemple, Snyk recommande des images de base de conteneurs alternatives via l’interface ou la CLI. Lorsque vous importez votre dépôt de code source à l’aide d’un SCM tel que GitHub, Snyk peut automatiser la correction de l’image de conteneur en créant une demande de fusion qui met à jour l’entrée FROM du Dockerfile :

Snyk Container recommande des corrections pour la plupart des images de base officielles de Docker Hub dès qu’elles sont publiées :
Corriger libwebp dans les projets C et C++
Mettez à jour toutes les dépendances webmproject/libwebp de votre projet vers la version 1.3.2 ou une version ultérieure, puis reconstruisez votre application.
Prochaines étapes pour répondre à la vulnérabilité « libwebp »
Testez vos projets avec Snyk en suivant les méthodes présentées dans cet article. Pour commencer, créez un compte Snyk gratuit, puis importez et analysez tous les projets potentiellement concernés à l’aide de l’assistant d’importation.
Repérez les correctifs prioritaires pour la vulnérabilité
libwebpgrâce au score de priorité ou à Insights (pour les clients de l’offre Snyk Enterprise).Appliquez les correctifs en mettant à jour la bibliothèque
libwebpvers la version 1.3.2 ou ultérieure dans les dépendances de vos projets open source ou dans vos images de conteneurs.Continuez à suivre l’évolution de la situation, suivez-nous sur X (@snyksec) et consultez le blog Snyk pour ne rien manquer. Les équipes Sécurité de Snyk mettront régulièrement à jour nos ressources avec les dernières informations.
