FixVibe

high

Exécution arbitraire de JavaScript dans PDF.js (CVE-2024-4367)

CVE-2024-4367 est une vulnérabilité de gravité élevée dans PDF.js (versions 4.1.392 et antérieures) qui permet à des attaquants d’exécuter du JavaScript arbitraire. Lors du rendu d’un PDF malveillant, la bibliothèque peut exécuter des scripts intégrés, ce qui peut entraîner des attaques XSS et l’exposition de données. La remédiation consiste à effectuer la mise à niveau vers la version 4.2.67 ou une version ultérieure.

CVE-2024-4367GHSA-wgrm-67xf-hhpqCWE-754

Impact

Les versions 4.1.392 et antérieures de PDF.js sont exposées à une vulnérabilité permettant l’exécution arbitraire de JavaScript [S2]. Ce problème, identifié comme CVE-2024-4367, est classé de gravité élevée avec un score CVSS de 8.8 [S1]. Un attaquant peut l’exploiter en incitant un utilisateur à ouvrir un fichier PDF spécialement conçu, qui exécute ensuite du code malveillant dans le contexte de la session du navigateur de l’utilisateur [S2]. Cela peut entraîner du cross-site scripting (XSS), un détournement de session et le vol d’informations sensibles [S2].

Cause racine

La vulnérabilité provient d’une mauvaise gestion de certaines fonctionnalités PDF : la bibliothèque ne nettoie pas suffisamment les données et ne vérifie pas correctement certaines conditions inhabituelles avant le rendu [S1]. Cette absence de validation permet l’exécution de scripts malveillants intégrés à un PDF pendant son traitement [S2].

Remédiation

La correction principale consiste à mettre à niveau la bibliothèque pdfjs-dist vers la version 4.2.67 ou une version ultérieure [S2]. En complément, une politique de sécurité du contenu (CSP) stricte peut fournir une défense en profondeur contre l’exécution de scripts non autorisés [S2].

Stratégie de détection

La détection de cette vulnérabilité consiste à rechercher la présence de versions concernées de la bibliothèque dans l’environnement de l’application [S2].

  • Analyse des dépendances : analyser les manifestes du projet et les fichiers de verrouillage (tels que package.json ou package-lock.json) afin d’identifier les versions de pdfjs-dist égales ou antérieures à la 4.1.392 [S2].
  • Identification de version : examiner les chaînes de version des ressources JavaScript chargées dans un environnement web afin d’identifier les instances vulnérables de la bibliothèque PDF.js [S2].