Nous sommes heureux de vous présenter une série de blogs d'analyse technique portant sur diverses vulnérabilités et expositions communes (CVE), identifiées et corrigées à l'aide de nos technologies avancées de détection des menaces.Toutes les recherches sont effectuées par les étudiants diplômés qui participent au programme Cybersecurity Fellowship ( OPSWAT ) lancé en septembre 2023.
Dans ce blog, nous expliquerons la vulnérabilité Foxit PDF Reader CVE- 2020-14425 et comment les organisations peuvent se protéger contre son exploitation.
Foxit PDF Reader
Foxit PDF Reader est un outil PDF développé par Foxit Software, offrant une gamme de fonctionnalités pour créer, visualiser, éditer et signer numériquement des documents PDF. La version gratuite de Foxit Reader a gagné en popularité et est utilisée par plus de 700 millions d'utilisateurs.
Pour améliorer ses capacités et sa flexibilité, Foxit PDF Reader prend en charge les extensions JavaScript, offrant aux utilisateurs des options de personnalisation ; cependant, cela introduit également un risque de sécurité potentiel, faisant du logiciel une cible pour les attaquants.
14425
Une vulnérabilité dans Foxit PDF Reader avant la version 10.0 permet aux attaquants d'exécuter du code à distance sur l'appareil de la victime lorsqu'un fichier PDF spécialement conçu est ouvert. Cette vulnérabilité est due à la faiblesse de sécurité de la fonction JavaScript app.opencPDFWebPage. Si Foxit Reader est configuré pour utiliser le navigateur par défaut afin d'ouvrir les URL intégrées dans le fichier PDF, le code malveillant intégré dans le fichier exécutable peut s'exécuter sans déclencher de dialogue d'avertissement de sécurité.
Un fichier PDF conçu pour exploiter cette vulnérabilité peut être distribué par le biais d'une campagne d'hameçonnage par courrier électronique ou de liens malveillants intégrés. Si l'utilisateur ouvre le fichier PDF compromis en utilisant la version vulnérable de Foxit Reader, l'attaquant peut prendre le contrôle de l'appareil de la victime en exécutant du code à distance.
Analyse de CVE-2020-14425
Les fichiers PDF sont organisés selon une structure arborescente, composée d'une section d'en-tête, d'une section de corps, d'une table de références croisées et d'une section de fin.
- L'en-tête commence par %PDF-1.x, indiquant la version du format PDF. À l'heure actuelle, la version du format va de 1.0 à 1.7. La section d'en-tête comprend également des métadonnées du document, telles que l'auteur, la date de création et d'autres informations pertinentes.
- Le corps comprend l'intégralité du contenu du fichier PDF, structuré en objets tels que des pages, des flux de texte, des polices, des formulaires, du code JavaScript et d'autres éléments.
- La table des références croisées (table Xref) contient la référence et le décalage d'octet de tous les objets du fichier PDF. Elle permet d'accéder rapidement aux objets sans avoir à lire l'ensemble du fichier.
- Le trailer stocke des informations supplémentaires essentielles à la localisation de la table xref, telles que le nombre total d'entrées dans la table xref et le pointeur vers son début.
Comme le corps contient les objets sensibles des fichiers PDF, les attaques se concentrent souvent sur l'injection de code malveillant dans ce composant.
Les fichiers PDF sont devenus une cible pour les attaquants en raison de leur omniprésence. Comme les fichiers PDF peuvent contenir du code JavaScript, ils peuvent être utilisés pour exécuter diverses attaques lorsqu'ils sont ouverts par un navigateur, telles que le déni de service (DoS), la redirection ouverte ou les scripts intersites (XSS).
En outre, les attaquants peuvent utiliser certaines techniques exploitables telles que l'utilisation après libération (UAF) et le débordement de mémoire tampon (BoF). Ils peuvent également exploiter la gestion des défaillances logicielles pour exécuter une attaque par exécution de code à distance (RCE) sur le système de la victime. En conséquence, un fichier PDF peut contenir un ransomware qui crypte les données de l'ordinateur et demande une rançon importante pour les récupérer, ou les attaquants peuvent prendre le contrôle total de l'ordinateur de la victime.
Dans Foxit Reader, lorsqu'une URL de page web est incorporée, les utilisateurs ont deux options d'affichage : afficher la page web dans Foxit Reader ou utiliser le navigateur par défaut de l'appareil de l'utilisateur. Dans la configuration par défaut, Foxit Reader accède en interne à la page web incorporée. Dans le contenu du PDF, pour demander l'ouverture d'une page web, Foxit Reader utilise la fonction OpencPDFWebPage, un JavaScript API conçu pour initier l'ouverture d'une page web URL incorporée dans le PDF.
Cependant, il existe une vulnérabilité de type "Improper Input Validation" dans ce site API, qui permet aux attaquants de saisir un chemin d'accès à un fichier local dans la fonction opencPDFWebPage. Par conséquent, la fonction peut ouvrir le fichier malveillant avec le chemin d'accès joint et exécuter ce fichier exécutable. Cette faille permet aux attaquants de lancer la charge utile stockée sur la machine de la victime et d'obtenir l'exécution du code à distance.
L'option d'ouverture de la page web dans Foxit Reader, une exigence pour IE 10 ou plus, déclenche un dialogue d'avertissement lors d'une tentative d'exploitation, alors que si l'option est réglée pour utiliser le navigateur par défaut, elle contourne l'avertissement de sécurité.
Exploitation des vulnérabilités
Avec la vulnérabilité identifiée, un vecteur d'attaque potentiel implique une attaque par hameçonnage utilisant le fichier PDF comme chargeur pour exécuter une charge utile cachée. Dans ce scénario, l'auteur de la menace envoie à la victime un fichier ZIP contenant un fichier PDF et un fichier exécutable caché, dans l'intention de la tromper et de lui faire ouvrir le document. La CVE de Foxit Reader permet alors au code JavaScript intégré d'exécuter le fichier exécutable caché, établissant ainsi une connexion shell inversée avec la machine de l'attaquant.
Pour injecter du code JavaScript dans le fichier PDF, l'attaquant peut modifier directement le fichier de contenu PDF ou utiliser des outils tels que Foxit Phantom PDF. Le code malveillant définit le chemin du fichier malveillant et exécute le code nuisible à l'aide de la fonction opencPDFWebPage.
Après avoir préparé les fichiers PDF malveillants, le pirate cache le fichier exécutable et compresse le dossier dans un fichier ZIP. Pour échapper aux protections de sécurité des programmes antivirus, le pirate peut crypter le fichier ZIP avec un mot de passe avant de l'envoyer à la victime.
Si la victime extrait et ouvre le fichier PDF malveillant avec la version vulnérable de Foxit Reader, le code malveillant intégré dans le fichier exécutable sera exécuté, ce qui permettra à l'attaquant de compromettre l'appareil de la victime par le biais d'un shell inversé.
Remédiation
La technologie Multiscanning de Metadefender Core détecte les fichiers malveillants compressés avec des mots de passe, ce qui permet aux administrateurs d'identifier avec précision ces menaces. Avec l'intégration de plus de 30 moteurs antivirus combinés, le taux de détection des logiciels malveillants atteint plus de 99,99 %. En outre, grâce à la technologie intégrée Deep CDR (Content Disarm and Reconstruction), Metadefender Core peut supprimer efficacement le code JavaScript potentiellement malveillant et régénérer des fichiers assainis et sûrs d'utilisation.
En outre, MetaDefender Endpoint peut reconnaître les versions vulnérables des applications et les mettre automatiquement à jour avec les derniers correctifs, renforçant ainsi la sécurité des points d'accès contre les menaces potentielles à l'avenir.