W Budibase w wersji 3.31.5 i wcześniejszych uwierzytelniony użytkownik z uprawnieniami buildera może wykorzystać podatność path traversal w endpoincie przetwarzającym pliki ZIP dla Progressive Web App, aby odczytać dowolne pliki z systemu plików serwera. Zagrożenie jest krytyczne, ponieważ umożliwia jednorazowe wykradnięcie wszystkich sekretów kryptograficznych i danych uwierzytelniających platformy.
▸ Pokaż oryginał (EN)
Budibase is a low code platform for creating internal tools, workflows, and admin panels. In 3.31.5 and earlier, a path traversal vulnerability in the PWA (Progressive Web App) ZIP processing endpoint (POST /api/pwa/process-zip) allows an authenticated user with builder privileges to read arbitrary files from the server filesystem, including /proc/1/environ which contains all environment variables — JWT secrets, database credentials, encryption keys, and API tokens. The server reads attacker-specified files via unsanitized path.join() with user-controlled input from icons.json inside the uploaded ZIP, then uploads the file contents to the object store (MinIO/S3) where they can be retrieved through signed URLs. This results in complete platform compromise as all cryptographic secrets and service credentials are exfiltrated in a single request.
Endpoint POST /api/pwa/process-zip przetwarza przesyłane archiwa ZIP bez odpowiedniej walidacji ścieżek. Atakujący umieszcza w przesyłanym archiwum zmodyfikowany plik icons.json zawierający kontrolowaną przez siebie ścieżkę pliku. Serwer buduje ścieżkę do pliku przy użyciu funkcji path.join() z niezweryfikowanymi danymi wejściowymi od użytkownika, co pozwala na wyjście poza dozwolony katalog (path traversal). Odczytana zawartość pliku — w tym wrażliwych lokalizacji takich jak /proc/1/environ — jest następnie przesyłana do magazynu obiektów (MinIO lub S3) i udostępniana atakującemu za pośrednictwem podpisanych URL.
Atakujący może odczytać dowolne pliki dostępne dla procesu serwera, w tym /proc/1/environ zawierający zmienne środowiskowe z sekretami JWT, danymi uwierzytelniającymi do baz danych, kluczami szyfrowania oraz tokenami API — co prowadzi do całkowitego przejęcia platformy.
Należy zaktualizować Budibase do wersji nowszej niż 3.31.5. Szczegóły dotyczące patcha dostępne są w oficjalnym security advisory producenta pod adresem https://github.com/Budibase/budibase/security/advisories/GHSA-pqcr-jmfv-c9cp
Budibase w wersji 3.31.5 i wcześniejszych
Podatność wymaga uwierzytelnienia oraz uprawnień buildera — nie jest exploitowalna przez anonimowych użytkowników. Mimo to skutki udanego ataku są krytyczne ze względu na zakres wykradanych danych (wszystkie sekrety platformy w jednym żądaniu).
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:NBudibase
APPBudibase≤ 3.31.5
Powiązane podatności
SQL/NoSQL Injection w Budibase — nieautoryzowany odczyt i zapis danych
Budibase: path traversal przez symlink w endpoint przetwarzania ZIP
Budibase: pominięcie uwierzytelnienia przez manipulację query string
Budibase: nieuwierzytelniony RCE przez publiczny webhook i krok Bash
SSRF w Budibase — nieaktywna ochrona blacklisty IP umożliwia dowolne żądania