CVE-2026-54350
Budibase: Injeção anônima de operador NoSQL via modelos de consulta de aplicação publicada
- Publicado
- 26 de jun. de 2026
- Atualizado
- 30 de jun. de 2026
- Atribuindo CNA
- GitHub_M
- Evidência observada
- 8 de ago. de 2026
CVSS primário
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:NBaixo · próximos 30 dias
- Percentil
- 44,0%
- Data do modelo
- 21 de set. de 2026
EPSS é uma estimativa estatística, não uma certeza ou uma medida de impacto. Combine-o com CVSS, status KEV, exposição e seu ambiente.
Resumo
Budibase é uma plataforma open-source de low-code. Antes da versão 3.39.12, um visitante não autenticado de qualquer aplicativo Budibase publicado lê todos os documentos do MongoDB, CouchDB, Elasticsearch, DynamoDB-PartiQL ou coleção REST-com-corpo-JSON de suporte e, quando o builder publicou uma consulta de escrita PÚBLICA, modifica todos os documentos dessa coleção com uma única solicitação HTTP. enrichContext em packages/server/src/sdk/workspace/queries/queries.ts:121-138 substitui valores de parâmetros no corpo JSON bruto de uma consulta e, em seguida, faz JSON.parse do resultado. O validador validateQueryInputs em packages/server/src/api/controllers/query/index.ts:61-71 rejeita apenas marcadores Handlebars ({{, }}) na entrada do usuário e não escapa metacaracteres JSON (", \, }). Um valor de parâmetro contendo aspas de fechamento e chaves adicionais eleva campos controlados pelo atacante para dentro do objeto de filtro analisado. Para find do Mongo, o filtro analisado é passado diretamente para collection.find() (packages/server/src/integrations/mongodb.ts:506-510). A análise JSON de chave duplicada sobrescreve o {name: "..."} do builder com {name: {$exists: true}} e retorna todos os documentos. A mesma primitiva contra uma consulta updateMany (mongodb.ts:577-585) amplia o escopo do filtro para a coleção inteira enquanto o corpo $set controlado pelo builder é executado contra todos os documentos correspondentes. O middleware autorizado em packages/server/src/middleware/authorized.ts:141-148 faz curto-circuito quando o papel da consulta é PÚBLICO. CSRF não é aplicado nesse caminho. POST /api/v2/queries/:queryId (packages/server/src/api/routes/query.ts:63) aceita a chamada sem sessão, apenas com um cabeçalho x-budibase-app-id que é público a partir da URL do aplicativo publicado. Essa vulnerabilidade é corrigida na versão 3.39.12.
Fontes
1Uso responsável
Use informações de vulnerabilidade apenas em sistemas que você possui ou está autorizado a testar. O Kitploit vincula-se a metadados de pesquisa pública e não armazena código de exploração ou cargas maliciosas.