Executive brief
Budibase is a low-code application platform that allows users to build business apps with database queries. A vulnerability in the MongoDB query execution endpoint allows authenticated app users to inject malicious NoSQL operators into query parameters, bypassing security filters to read all database records, modify them in bulk, or delete entire collections. Any regular application user with query execution permissions can exploit this to access or destroy sensitive data.
Technical details
The vulnerability is a NoSQL injection in the POST /api/v2/queries/:queryId endpoint. The enrichContext() function interpolates user-supplied query parameters into JSON query templates using Handlebars with escaping disabled (noEscaping: true), then passes the result to JSON.parse(). While validateQueryInputs() blocks Handlebars template syntax ({{}}), it does not sanitize JSON structural characters such as quotes, braces, and colons. An attacker can inject these characters to alter query structure; for example, providing a parameter value of `", "$ne": "` transforms a filter from {"username": "alice"} to {"username": "", "$ne": ""}, which matches all non-empty documents instead of a single user. The attack requires only QUERY WRITE permission (a standard app-level permission available to regular users), not builder or admin access. Patches are available in version 3.40.0 and later.
Affected products
- Budibase Budibase <3.40.0
Timeline
- 2026-07-24: disclosed