CVE-2026-54350
Budibase: Inyección anónima de operadores NoSQL mediante plantillas de consulta de aplicaciones publicadas
- Publicado
- 26 jun 2026
- Actualizado
- 30 jun 2026
- Asignación de CNA
- GitHub_M
- Evidencia observada
- 8 ago 2026
CVSS primario
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:NBajo · próximos 30 días
- Percentil
- 44,0 %
- Fecha del modelo
- 21 sept 2026
EPSS es una estimación estadística, no una certeza o una medida de impacto. Combínelo con CVSS, estado KEV, exposición y su entorno.
Resumen
Budibase es una plataforma low-code de código abierto. Antes de la versión 3.39.12, un visitante no autenticado de cualquier aplicación Budibase publicada lee todos los documentos de la colección subyacente MongoDB, CouchDB, Elasticsearch, DynamoDB-PartiQL o REST-with-JSON-body y, cuando el constructor ha publicado una consulta de escritura PUBLIC, modifica todos los documentos de esa colección con una sola solicitud HTTP. enrichContext en packages/server/src/sdk/workspace/queries/queries.ts:121-138 sustituye los valores de los parámetros en el cuerpo JSON en bruto de una consulta y, a continuación, aplica JSON.parse al resultado. El validador validateQueryInputs en packages/server/src/api/controllers/query/index.ts:61-71 rechaza únicamente los marcadores de Handlebars ({{, }}) en la entrada del usuario y no escapa los metacaracteres JSON (\", \\, }). Un valor de parámetro que contenga una comilla de cierre y claves adicionales introduce campos controlados por el atacante en el objeto de filtro parseado. Para Mongo find, el filtro parseado se pasa directamente a collection.find() (packages/server/src/integrations/mongodb.ts:506-510). El parseo JSON de claves duplicadas sobrescribe el {name: \"...\"} del constructor con {name: {$exists: true}} y devuelve todos los documentos. La misma primitiva contra una consulta updateMany (mongodb.ts:577-585) amplía el alcance del filtro a toda la colección, mientras que el cuerpo $set controlado por el constructor se ejecuta contra todos los documentos coincidentes. El middleware de autorización en packages/server/src/middleware/authorized.ts:141-148 se cortocircuita cuando el rol de la consulta es PUBLIC. CSRF no se aplica en esta ruta. POST /api/v2/queries/:queryId (packages/server/src/api/routes/query.ts:63) acepta la llamada sin sesión, solo con un encabezado x-budibase-app-id que es público a partir de la URL de la aplicación publicada. Esta vulnerabilidad está corregida en la versión 3.39.12.
Fuentes
1Uso responsable
Utilice información sobre vulnerabilidades solo en sistemas de su propiedad o que esté autorizado a probar. Kitploit enlaza con metadatos de investigación pública y no almacena código de explotación ni cargas útiles maliciosas.