CVE-2024-0710
- Vulnerability: CVE-2024-0710 (Modification non authentifiée de l'ID unique de soumission de formulaire)
- CVSS : 5.3 (Moyen)
- Logiciel : GP Unique ID (gp-unique-id)
- Versions affectées : <= 1.5.5
- Version corrigée : 1.5.6
- Développeur : Gravity Wiz
- Chercheur : Karl Emil Nikka, Nikka Systems
- Publié publiquement : 2024-04-10
- Dernière mise à jour : 2024-04-18
Aperçu
Un soumetteur de formulaire non authentifié peut choisir une valeur personnalisée pour un champ censé toujours avoir une valeur aléatoire ou séquentielle. Cette vulnérabilité n'affecte que les sites où la valeur doit être soit aléatoire, soit séquentielle pour des raisons légales, fonctionnelles ou de sécurité.
Contexte
GP Unique ID est un module complémentaire pour Gravity Forms. Il attribue des ID uniques aux entrées après une soumission réussie. Contrairement aux ID réels de la base de données des entrées, les GP Unique IDs, ci-après appelés GPUIDs, peuvent être personnalisés par le créateur du formulaire pour suivre une syntaxe spécifique avec un nombre de départ défini, un jeu de caractères, une longueur, un préfixe et un suffixe. Le GPUID est stocké dans un champ d'entrée personnalisé de Gravity Forms. Le champ est masqué sur le frontend.
Le développeur du plugin liste les cas d'utilisation courants suivants pour GP Unique ID.
- Fournir un numéro de confirmation ou de référence de longueur fixe pour chaque entrée.
- Maintenir un numéro de facture séquentiel.
- Générer un code promo unique pouvant être utilisé lors de soumissions ultérieures.
- Générer un numéro unique pour une utilisation dans des loteries.
La vulnérabilité
GP Unique ID attribue le GPUID après que le formulaire a été soumis avec succès, mais seulement tant qu'il n'y a pas déjà de valeur dans le champ. Cela permet à un soumetteur de formulaire de définir un GPUID personnalisé lors de la soumission du formulaire. Comme le champ n'est pas vide, aucun vrai GPUID n'est stocké. Un visiteur peut donc
- définir un GPUID qui ne respecte pas la syntaxe
- définir un GPUID qui n'est pas séquentiel
- définir un GPUID qui n'est pas aléatoire
- définir un GPUID déjà attribué à une autre entrée.
Correctifs
Gravity Wiz a publié une version corrigée du plugin le 09-04-2024. Les administrateurs du site doivent mettre à jour vers la version corrigée (1.5.6) et, le cas échéant, s'assurer que les soumissions précédentes n'ont pas été altérées.
- 2024-01-13 J'ai signalé la vulnérabilité à Gravity Wiz (conformément à la politique de divulgation responsable de 90 jours de Project Zero).
- 2024-01-13 J'ai soumis la vulnérabilité au CNA de Wordfence. J'ai refusé de participer à leur programme de bug bounty.
- 2024-01-15 Gravity Wiz a confirmé avoir reçu le rapport.
- 2024-01-16 Gravity Wiz a reconnu la vulnérabilité et m'a informé qu'ils publieraient un correctif.
- 2024-01-19 Wordfence a attribué l'ID CVE CVE-2024-0710 à la vulnérabilité.
- 2024-02-29 J'ai envoyé un rappel à 45 jours à Gravity Wiz.
- 2024-04-01 J'ai envoyé un rappel indiquant que la fenêtre de divulgation responsable de 90 jours se terminerait dans deux semaines.
- 2024-04-07 Gravity Wiz m'a envoyé une version préliminaire du plugin corrigé.
- 2024-04-09 Gravity Wiz a publié le plugin corrigé, 87 jours après le rapport initial (dans la fenêtre de divulgation responsable de 90 jours).