Budibase — это платформа low-code с открытым исходным кодом. До версии 3.38.2 конечная точка загрузки файлов POST /api/attachments/process не применяла ограничения активного контента для прошедших проверку подлинности пользователей. Проверки на наличие опасных расширений файлов условно заключены внутри if (isPublicUser) или if (isPublicUser || !env.SELF_HOSTED), что означает, что любой аутентифицированный сборщик может загружать исполняемый веб-контент — файлы SVG со встроенными тегами <script>, HTML-страницы с JavaScript, модули .js — которые затем сохраняются в хранилище объектов (MinIO/S3) с правильными типами MIME.
Когда полученный подписанный URL-адрес открывается любым пользователем приложения, браузер выполняет полезную нагрузку. Влияние — это постоянное сохранение XSS для всех конечных пользователей приложения. Эта уязвимость исправлена в версии 3.38.2.
Показать оригинальное описание (EN)
Budibase is an open-source low-code platform. Prior to 3.38.2, the file upload endpoint POST /api/attachments/process does not enforce active-content restrictions for authenticated users. The checks for dangerous file extensions are conditionally wrapped inside if (isPublicUser) or if (isPublicUser || !env.SELF_HOSTED), meaning any authenticated builder can upload executable web content — SVG files with inline <script> tags, HTML pages with JavaScript, .js modules — which are then stored in the object store (MinIO/S3) with their correct MIME types. When the resulting signed URL is opened by any app user, the browser executes the payload. Impact is persistent stored XSS over all application end users. This vulnerability is fixed in 3.38.2.
Характеристики атаки
Последствия
Строка CVSS v3.1