07/01/2025

Actu Cybersécurité

Une faille découverte dans le scanner de vulnérabilités Nuclei ouvre la porte aux modèles malveillants

Le scanner de vulnérabilités Nuclei est affecté par une faille de sécurité permettant à un attaquant d'ajouter du code malveillant à un template ! En effet, grâce à cette vulnérabilité, il est envisageable de contourner le système de vérification de la signature. Faisons le point.

Créé par ProjectDiscovery, Nuclei est un scanner de vulnérabilités open source populaire, que vous pouvez notamment utiliser pour analyser vos applications Web. Il y a une importante communauté, et pour preuve, sachez qu'il y a plus de 10 000 modèles disponibles.

Ces modèles correspondent à des fichiers YAML et chaque modèle est "signé" avec un condensé que Nuclei utilise s'assurer que le template n'a pas été modifié pour inclure du code malveillant. Cette information est présente à la fin de chaque modèle (# digest: <hash>). Vous comprendrez ensuite pourquoi il est important de le rappeler.

Si vous souhaitez en savoir plus sur Nuclei et apprendre à l'utiliser, vous pouvez lire notre article :

La faille de sécurité CVE-2024-43405 découverte dans Nuclei

Aujourd'hui, nous n'allons pas parler de ses fonctionnalités, mais plutôt d'une faille de sécurité découverte par les chercheurs en sécurité de Wiz : la CVE-2024-43405. Vous pouvez retrouver le rapport de sécurité des chercheurs de Wiz sur cette page.

Cette vulnérabilité permet de contourner le système de vérification de Nuclei, y compris lorsque le code du modèle a été modifié pour inclure du code malveillant. Cette vulnérabilité est liée à un problème d'interprétation des sauts de ligne entre le système de vérification de signature basé sur les regex en Go et l'analyseur YAML.

Ce qui pose problème, c'est la présence de la chaine "\r" puisque Go considère que c'est un code sur la même ligne, alors que pour YAML, c'est un saut de ligne. Cela ouvre la porte aux attaquants pour injecter du code malveillant qui contourne la vérification, mais qui est tout de même exécuté lorsqu'il est traité par l'analyseur YAML.

"D'après cette sortie, nous voyons que l'analyseur de Go considère \n comme un saut de ligne, mais pas \r. Cela signifie que le contenu séparé par \r peut contourner la vérification de la signature basée sur les regex tout en étant interprété comme des lignes séparées par l'analyseur YAML.", peut-on lire dans le rapport.

Source : Wiz Research

Il y a autre problème lié à Nuclei : il s'appuie seulement sur la première occurrence de l'instruction "digest" pour vérifier la signature. Comme l'expliquent les chercheurs en sécurité, cela permet d'exécuter n'importe quel code arbitraire. "En utilisant \r comme saut de ligne, nous pouvons inclure une deuxième ligne "#digest :" dans le modèle qui échappe au processus de vérification de la signature mais qui est analysée et exécutée par l'interpréteur YAML."

Comment se protéger ?

Cette vulnérabilité a été signalée à ProjectDiscovery par les chercheurs de Wiz le 14 août 2024. Elle a été corrigée dans Nuclei v3.3.2 disponible depuis le 4 septembre 2024. Le rapport des chercheurs en sécurité quant à lui, a été publié début janvier 2025.

Si vous utilisez Nuclei, vous devez mettre à jour vers la version 3.3.2 ou une version plus récente. La dernière version disponible à l'heure où ces lignes sont écrites est la 3.3.7 (sortie le 2 décembre 2024). Si vous utilisez une version vulnérable, vous exposez votre machine et du code malveillant pourrait être exécuté par l'intermédiaire d'un modèle Nuclei piégé.

Source

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.