CVE-2026-54350
Budibase: анонимная NoSQL-инъекция операторов через шаблоны запросов опубликованных приложений
- Опубликовано
- 26 июн. 2026 г.
- Обновлено
- 30 июн. 2026 г.
- Назначение CNA
- GitHub_M
- Наблюдены доказательства
- 8 авг. 2026 г.
Первичный CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:NНизкий · следующие 30 дней
- Процентиль
- 44,0 %
- Дата модели
- 21 сент. 2026 г.
EPSS – это статистическая оценка, а не достоверность или мера воздействия. Объедините это с CVSS, статусом KEV, воздействием и вашей средой.
Резюме
Budibase — это open-source low-code платформа. До версии 3.39.12 неаутентифицированный посетитель любого опубликованного приложения Budibase читает каждый документ базовой коллекции MongoDB, CouchDB, Elasticsearch, DynamoDB-PartiQL или REST-with-JSON-body, и, если разработчик опубликовал запрос на запись с ролью PUBLIC, изменяет каждый документ этой коллекции одним HTTP-запросом. enrichContext в packages/server/src/sdk/workspace/queries/queries.ts:121-138 подставляет значения параметров в исходное JSON-тело запроса, а затем применяет JSON.parses к результату. Валидатор validateQueryInputs в packages/server/src/api/controllers/query/index.ts:61-71 отклоняет только маркеры Handlebars ({{, }}) во входных данных пользователя и не экранирует JSON-метасимволы (\", \\, }). Значение параметра, содержащее закрывающую кавычку и дополнительные ключи, добавляет контролируемые атакующим поля в разобранный объект фильтра. Для Mongo find разобранный фильтр передаётся напрямую в collection.find() (packages/server/src/integrations/mongodb.ts:506-510). Разбор JSON с дублирующимися ключами заменяет {name: \"...\"} разработчика на {name: {$exists: true}} и возвращает каждый документ. Тот же примитив применительно к запросу updateMany (mongodb.ts:577-585) расширяет область фильтра до всей коллекции, в то время как управляемое разработчиком тело $set выполняется для каждого соответствующего документа. authorized middleware в packages/server/src/middleware/authorized.ts:141-148 прерывает выполнение, когда роль запроса — PUBLIC. CSRF на этом пути не применяется. POST /api/v2/queries/:queryId (packages/server/src/api/routes/query.ts:63) принимает вызов без сессии — достаточно лишь заголовка x-budibase-app-id, который является публичным и доступен из URL опубликованного приложения. Эта уязвимость устранена в версии 3.39.12.
Источники
1Ответственное использование
Используйте информацию об уязвимостях только в тех системах, которыми вы владеете или имеете право тестировать. Kitploit ссылается на метаданные общедоступных исследований и не хранит код эксплойта или вредоносные полезные данные.