CVE-2026-54350
Budibase : injection anonyme d'opérateur NoSQL via les modèles de requête des applications publiées
- Publié
- 26 juin 2026
- Mise à jour
- 30 juin 2026
- Attribution de CNA
- GitHub_M
- Preuve observée
- 8 août 2026
CVSS primaire
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:NFaible · 30 prochains jours
- Percentile
- 44,0 %
- Date du modèle
- 21 sept. 2026
EPSS est une estimation statistique, et non une certitude ou une mesure d'impact. Combinez-le avec CVSS, le statut KEV, l'exposition et votre environnement.
Résumé
Budibase est une plateforme low-code open source. Avant la version 3.39.12, un visiteur non authentifié d'une application Budibase publiée peut lire chaque document de la collection MongoDB, CouchDB, Elasticsearch, DynamoDB-PartiQL ou REST-avec-corps-JSON sous-jacente et, lorsque le créateur a publié une requête d'écriture PUBLIC, modifier chaque document de cette collection avec une seule requête HTTP. enrichContext à packages/server/src/sdk/workspace/queries/queries.ts:121-138 substitue les valeurs des paramètres dans le corps JSON brut d'une requête, puis analyse le résultat avec JSON.parse. Le validateur validateQueryInputs à packages/server/src/api/controllers/query/index.ts:61-71 rejette uniquement les marqueurs Handlebars ({{, }}) dans les entrées utilisateur et n'échappe pas les métacaractères JSON (", \, }). Une valeur de paramètre contenant un guillemet fermant et des clés supplémentaires fait remonter les champs contrôlés par l'attaquant dans l'objet filtre analysé. Pour find de Mongo, le filtre analysé est passé directement à collection.find() (packages/server/src/integrations/mongodb.ts:506-510). L'analyse JSON avec clés dupliquées remplace le {name: "..."} du créateur par {name: {$exists: true}} et renvoie chaque document. La même primitive appliquée à une requête updateMany (mongodb.ts:577-585) élargit la portée du filtre à l'ensemble de la collection tandis que le corps $set contrôlé par le créateur s'exécute sur chaque document correspondant. Le middleware authorized à packages/server/src/middleware/authorized.ts:141-148 court-circuite lorsque le rôle de la requête est PUBLIC. CSRF n'est pas appliqué sur ce chemin. POST /api/v2/queries/:queryId (packages/server/src/api/routes/query.ts:63) accepte l'appel sans session, uniquement avec un en-tête x-budibase-app-id qui est public à partir de l'URL de l'application publiée. Cette vulnérabilité est corrigée dans la version 3.39.12.
Sources
1Utilisation responsable
Utilisez les informations de vulnérabilité uniquement sur les systèmes que vous possédez ou que vous êtes autorisé à tester. Kitploit renvoie aux métadonnées de la recherche publique et ne stocke pas de code d'exploitation ni de charges utiles malveillantes.