Nuclei, un outil open source très populaire utilisé pour analyser les vulnérabilités et les faiblesses des sites web, des applications cloud et des réseaux, présente une faille de haute sévérité qui pourrait potentiellement permettre aux attaquants d'exécuter des codes malveillants sur des systèmes locaux. Le trou de sécurité, répertorié en tant que CVE-2024-43405, a reçu un score CVSS de 7,4 sur 10 et affecte toutes les versions de Nuclei postérieures à la version 3.0.0. Les attaquants peuvent utiliser des modèles malveillants conçus avec des codes arbitraires donnant potentiellement accès à des données sensibles de l'hôte, selon les chercheurs de la société de sécurité cloud Wiz, qui a été crédité de la découverte de cette faille. Le PoC de contournement détaillé a été publié.
Selon une description de ProjectDiscovery, le développeur et mainteneur de Nuclei, cette faille a été détectée dans le processus de vérification de la signature des modèles, en particulier dans le paquet signer. « Une vulnérabilité a été identifiée dans le système de vérification de la signature des modèles de Nuclei qui pourrait permettre à un attaquant de contourner la vérification de la signature et éventuellement d'exécuter un code malveillant via un modèle de code personnalisé », a expliqué ProjectDiscovery. Un correctif a été apporté dans la version 3.3.2 de Nuclei.
Processus de vérification des signatures et analyse YAML divergent
Nuclei a recueilli plus de 21 000 étoiles sur GitHub et a été téléchargé plus de 2,1 millions de fois. L'outil utilise des « modèles », sous forme de fichiers YAML, qui définissent des vérifications ou des tests spécifiques pour le processus d'analyse des vulnérabilités. Il est essentiel de garantir l'authenticité de ces modèles pour éviter que certains altérés ou malveillants induisent en erreur ou compromettent le processus d'analyse. Nuclei a mis en place un processus de vérification des signatures basé sur Go regex pour garantir l'authenticité.
La vulnérabilité provient d'une divergence entre la façon dont le processus de vérification des signatures et l'analyseur YAML traitent les caractères de nouvelle ligne, a expliqué ProjectDiscovery. Alors que la logique de vérification de Go considère que \r fait partie de la même ligne, l'analyseur YAML le traite comme un saut de ligne, laissant ainsi la possibilité aux attaquants d'insérer des codes malveillants. Ceci, combiné au fait que Nuclei traite mal les lignes de signature multiples digest: peut potentiellement conduire un attaquant à injecter du contenu malveillant dans un modèle tout en gardant la signature valide pour la partie inoffensive du modèle.
Les utilisateurs des versions CLI et SDK concernés
Selon les experts, les utilisateurs de Nuclei, aussi bien en CLI qu'en SDK, sont concernés et doivent appliquer des correctifs. La version CLI comprend ceux qui exécutent des modèles de code personnalisés à partir de sources non vérifiées telles que des tiers et des dépôts non vérifiés. Ceux passant par le kit de développement logiciel sont concernés lorsque les développeurs qui intègrent Nuclei dans leurs plateformes autorisent l'exécution de modèles de code personnalisés par les utilisateurs finaux. Outre la mise à niveau vers la version corrigée disponible depuis le 4 septembre 2024, une mesure de contournement consiste à s'abstenir d'utiliser des modèles personnalisés d'après ProjectDiscovery.
Commentaire