Une grave vulnérabilité dans PDF.js permet l'exécution de code arbitraire dans Firefox, et Thunderbird entre autres
mar, 21/05/2024 - 16:15
La bibliothèque PDF.js est une bibliothèque écrite en JavaScript, développée par Mozilla, qui permet de visualiser des fichiers PDF. Une faille vient d'y être découverte qui permet l'exécution de code arbitraire. Comme quoi il n'y a pas que C et C++ pour créer ce genre de souci. La vulnérabilité est estampillée CVE-2024-476 et est décrite ainsi : Une vérification de type manquait lors de la gestion des polices dans PDF.js, ce qui permettrait l'exécution arbitraire de JavaScript dans le contexte PDF.js.
La bibliothèque PDF.js est très largement utilisée. Tout d'abord elle l'est dans Firefox et Thunderbird. Ce qui veut dire qu'un utlisateur peut-être attaqué simplement en visualisant un PDF malveillant dans son navigateur ou dans Thinderbird après l'avoir reçu en fichier attaché à un mail. PDF.js se trouve aussi intégrée dans de nombreuses application Web, dans le framework Electron, dans un module Node appelé pdfjs-dist, avec environ 2,7 millions de téléchargements hebdomadaires, pour ne donner que ces exemples.
Pour se protéger de cette vulnérabilité, il faut utiliser une version de PDF.js égale ou supérieure à 4.2.67. C'est-à-dire Firefox 126 au moins et Thunderbird 115.11 au moins. Les développeurs, quant à eux, compte tenu du fait que PDF.js est très utilisée dans moult bibliothèques et frameworks, doivent être particulièrement attentifs à ne pas intégrer à leurs applications, involontairement ou indirectement, une version vulnérable de la bibliothèque.
Ce sont des chercheurs en sécurité de Codean Labs qui ont découvert cette vulnérabilité. Ils l'expliquent techniquement en détail dans un billet très intéressant. En résumé, lorsqu'un document PDF embarque une police de caractères spéciale, PDF.js ne peut pas la rendre directement. Au lieu de cela, la bibliothèque convertit la description des caractères de la police en instructions pour les dessiner. C'est dans cette description de la police qu'un attaquant peut placer du code arbitraire et ainsi forger un document PDF malveillant.
Le billet des chercheurs de Codean Labs contient un lien vers un tel document PDF, à titre de preuve de concept.