La version 8.5.7 de Notepad++ a été publiée avec des correctifs pour plusieurs jours zéro de débordement de tampon, l’un d’entre eux étant marqué comme pouvant conduire à l’exécution de code en incitant les utilisateurs à ouvrir des fichiers spécialement conçus.
Notepad++ est un éditeur de code source gratuit populaire qui prend en charge de nombreux langages de programmation, peut être étendu via des plugins et offre des fonctionnalités améliorant la productivité telles que l’édition multi-onglets et la coloration syntaxique.
Jaroslav Lobačevski, chercheur en sécurité chez GitHub, a signalé les vulnérabilités de Notepad++ version 8.5.2 aux développeurs au cours des deux derniers mois.
Des exploits de preuve de concept ont également été publiés pour ces failles dans l’avis public du chercheur, ce qui rend essentiel pour les utilisateurs de mettre à jour le programme dès que possible.
Failles de sécurité dans Notepad++
Les vulnérabilités découvertes impliquent des débordements de tampon de tas en écriture et en lecture dans diverses fonctions et bibliothèques utilisées par Notepad++.
Voici un résumé des quatre failles découvertes par le chercheur de GitHub :
- CVE-2023-40031 : Débordement de tampon dans la fonction Utf8_16_Read::convert en raison d’hypothèses incorrectes concernant les conversions d’encodage UTF16 vers UTF8.
- CVE-2023-40036 : Débordement de lecture du tampon global dans CharDistributionAnalysis::HandleOneChar provoqué par un ordre d’index de tableau basé sur la taille du tampon, exacerbé par l’utilisation de la bibliothèque uchardet.
- CVE-2023-40164 : Débordement de lecture de tampon global dans nsCodingStateMachine::NextState. Ceci est lié à une version spécifique de la bibliothèque uchardet utilisée par Notepad++, vulnérable du fait de sa dépendance à la taille du buffer charLenTable.
- CVE-2023-40166 : Un dépassement de lecture du tampon de tas se produit dans FileManager::detectLanguageFromTextBegining en raison de l’échec de la vérification des longueurs de tampon lors de la détection de la langue du fichier.
La plus grave de ces failles est CVE-2023-40031, qui a reçu une note CVSS v3 de 7,8 (élevée), conduisant potentiellement à l’exécution de code arbitraire.
Cependant, un utilisateur conteste qu’il soit possible d’exécuter du code à l’aide de cette faille en raison du type d’erreur dont il s’agit.
« Bien qu’il s’agisse techniquement d’un « débordement de tampon », il ne s’agit en réalité que d’un bug double avec pratiquement aucune chance de permettre l’exécution de code arbitraire », lit-on dans un commentaire sur un problème GitHub ouvert concernant les failles.
Les trois autres problèmes sont des problèmes de gravité moyenne (5,5) qui, selon Lobačevski, pourraient être exploités pour divulguer des informations sur l’allocation de mémoire interne.
Correction à venir
Malgré la publication du blog de Lobačevski et des exploits de preuve de concept le 21 août 2023, l’équipe de développement de Notepad++ ne s’est pas précipitée pour répondre à la situation jusqu’à ce que la communauté des utilisateurs fasse pression pour obtenir une solution.
Finalement, le 30 août 2023, un numéro public a été créé pour reconnaître le problème, et les correctifs pour les quatre failles ont été intégrés dans la branche principale du code le 3 septembre 2023.
Notepad++ 8.5.7 est maintenant publié et devrait être installé pour corriger les quatre vulnérabilités et autres bugs répertoriés dans le journal des modifications.