Quel est le problème
Il y a de bonnes et de mauvaises nouvelles.
✓ La bonne nouvelle est que l'équipe de Citizen Lab a, une fois de plus, fait un travail incroyable en détectant un exploit de premier plan utilisé dans la nature. Ils ont cultivé une grande confiance auprès des organisations et des individus les plus susceptibles d’être lésés par des exploits. C'est très impressionnant.
✗ La mauvaise nouvelle est que de tels exploits continuent d’avoir des ramifications sociétales, et nous ne pouvons que deviner à quel point la situation est réellement grave. La vérité est que personne ne le sait avec certitude, même ceux qui ont des exploits.
✓ La bonne nouvelle est qu'Apple et Chrome ont fait un travail incroyable pour répondre à ce problème avec l'urgence qu'il mérite. Il semble que les deux groupes aient publié une mise à jour pour leurs milliards d'utilisateurs en quelques jours seulement. C'est un exploit impressionnant, il faut un effort et une coordination incroyables entre les équipes d'analyse des menaces, d'ingénierie de sécurité, d'ingénierie logicielle, de gestion de produits et de test pour rendre cela possible, même à distance.
✗ La mauvaise nouvelle est qu'Android est probablement toujours affecté. Semblable à ImageIO d'Apple, Android dispose d'une fonctionnalité appelée BitmapFactory qui gère le décodage des images, et bien sûr, libwebp est pris en charge. À ce jour, Android n'a pas publié de bulletin de sécurité incluant un correctif pour CVE-2023-4863, bien que le correctif ait été fusionné dans AOSP. Pour mettre cela en contexte : si ce bug affecte Android, il pourrait alors potentiellement être transformé en un exploit à distance pour des applications comme Signal et WhatsApp. Je m'attendrais à ce que cela soit corrigé dans le bulletin d'octobre.
✓ La bonne nouvelle est que le bug semble être correctement corrigé dans la libwebp en amont, et ce correctif fait son chemin partout où il devrait aller.
✗ La mauvaise nouvelle est que libwebp est utilisé dans de nombreux endroits, et cela pourrait prendre un certain temps avant que le patch atteigne sa saturation. De plus, le code est encore très difficile à raisonner, et nous ne pouvons pas compter sur les fuzzers pour trouver d'autres bugs qui se cachent ici.
Dernières pensées
Le WebP 0day (CVE-2023-4863) est une vulnérabilité subtile mais puissante dans une bibliothèque open source largement utilisée et fortement exposée aux entrées des attaquants. Il est à la fois très difficile à fuzzer et très difficile à déclencher manuellement, mais le prix est un débordement de tas exploitable qui fonctionne sur plusieurs navigateurs, systèmes d'exploitation et applications. Il est probable que CVE-2023-4863 soit la même vulnérabilité utilisée dans les attaques BLASTPASS .
En pratique, il a fallu environ 3 jours de travail complets (avec beaucoup d'aide supplémentaire de @mistymntncop ) pour comprendre le bogue et créer un scénario de test reproductible.
Le manque d'informations techniques disponibles auprès des fournisseurs a rendu la vérification difficile, et on peut se demander à qui cela profite réellement. Les attaquants sont clairement très motivés pour suivre et exploiter les vulnérabilités de N jours, et le manque de détails techniques publiés ne les ralentira pas de manière significative. D’un autre côté, très peu de défenseurs disposent des ressources nécessaires pour effectuer le type d’analyse technique que j’ai partagé aujourd’hui. C'est contre-intuitif, mais en dissimulant des détails techniques de base sur la façon dont ces attaques fonctionnent dans une asymétrie qui profite principalement aux attaquants, vous vous retrouvez rapidement dans une situation où les attaquants ont accès à des informations sur la vulnérabilité/l'exploit que les défenseurs n'ont pas.
Ce bug montre également que nous comptons trop sur le fuzzing pour garantir la sécurité du code d'analyseur complexe. Le fuzzing est une bonne chose, mais nous savons qu'il existe de nombreux problèmes de sécurité graves qui ne sont pas faciles à flouter. Pour les surfaces d'attaque sensibles telles que le décodage d'images (surface d'attaque d'exploit à distance sans clic), il faut 1) investir davantage dans des révisions proactives du code source et 2) se concentrer de nouveau sur la garantie que ces analyseurs sont correctement mis en bac à sable.Source : Larges extraits traduits de l'article
The WebP 0day du blog Isosceles, article écrit par Ben Hawkes, le 21 septembre 2023