CVE-2026-85239 in MISP
Résumé
par VulDB • 03/09/2026
Une vulnérabilité dans la gestion des modèles d'événements (event templates) de MISP permettait à un utilisateur authentifié disposant des autorisations pour créer ou modifier ces modèles de contourner la validation du champ de définition du modèle.
La méthode `EventTemplate::beforeValidate()` n'effectuait une sémantique de validation que lorsque la définition fournie était déjà représentée sous forme de tableau (array). Si un appelant fournissait à la place une chaîne pré-encodée, y compris du JSON malformé ou du JSON représentant un type de données inattendu, la valeur contournait `validateDefinition()` et ne devait satisfaire que la règle générique `notBlank`. Par conséquent, une définition de modèle d'événement invalide pouvait être stockée de manière persistante dans la base de données.
Lorsque les modèles d'événements étaient ensuite récupérés, `EventTemplate::afterFind()` tentait de décoder la définition stockée à l'aide de `JsonTool::decode()` sans gérer les échecs de décodage. Une définition contenant du JSON invalide pouvait donc déclencher une exception lors de la récupération. Étant donné que l'index des modèles d'événements est accessible à tous les utilisateurs authentifiés, un seul modèle malveillant ou malformé pouvait entraîner des erreurs HTTP 500 pour le listing des modèles d'événements et d'autres fonctionnalités reposant sur des requêtes `EventTemplate`, jusqu'à ce que la ligne de base de données incriminée soit réparée manuellement.
Un JSON valide représentant un type inattendu, plutôt qu'un objet JSON attendu, pouvait également entraîner l'arrivée de données invalides chez les consommateurs en aval.
La vulnérabilité peut donc être exploitée par un utilisateur capable d'enregistrer des modèles d'événements pour persister des données de modèle malformées et provoquer une déni de service persistant contre la fonctionnalité des modèles d'événements pour les autres utilisateurs.
Le correctif impose que les définitions des modèles d'événements soient fournies sous forme d'objets structurés avant l'enregistrement et applique systématiquement une validation sémantique. Lors de la récupération, le JSON malformé et les définitions qui ne se décotent pas dans la structure attendue sont interceptées, consignées (logged) et remplacées par une définition vide, empêchant ainsi qu'une entrée de base de données malformée ne rompe toutes les requêtes sur les modèles d'événements.
L'empoisonnement (Poisoning) ne semble pas atteignable selon le développeur principal.
If you want to get best quality of vulnerability data, you may have to visit VulDB.