Podatność w platformie Budibase pozwala każdemu uwierzytelnionemu użytkownikowi (w tym z darmowego konta) na wykonanie dowolnego kodu JavaScript po stronie serwera poprzez niebezpieczne wywołanie eval(). Dotyczy wyłącznie wdrożeń Budibase Cloud (SaaS) — instancje self-hosted nie są podatne.
▸ Pokaż oryginał (EN)
Budibase is a low code platform for creating internal tools, workflows, and admin panels. Prior to version 3.30.4, an unsafe `eval()` vulnerability in Budibase's view filtering implementation allows any authenticated user (including free tier accounts) to execute arbitrary JavaScript code on the server. This vulnerability ONLY affects Budibase Cloud (SaaS) - self-hosted deployments use native CouchDB views and are not vulnerable. The vulnerability exists in `packages/server/src/db/inMemoryView.ts` where user-controlled view map functions are directly evaluated without sanitization. The primary impact comes from what lives inside the pod's environment: the `app-service` pod runs with secrets baked into its environment variables, including `INTERNAL_API_KEY`, `JWT_SECRET`, CouchDB admin credentials, AWS keys, and more. Using the extracted CouchDB credentials, we verified direct database access, enumerated all tenant databases, and confirmed that user records (email addresses) are readable. Version 3.30.4 contains a patch.
W pliku packages/server/src/db/inMemoryView.ts funkcje mapowania widoków dostarczane przez użytkownika są przekazywane bezpośrednio do eval() bez jakiejkolwiek sanityzacji ani walidacji (CWE-20, CWE-94, CWE-95). Atakujący może spreparować złośliwy payload jako funkcję filtrującą widok i uruchomić go w kontekście procesu serwera aplikacji. Środowisko pod app-service zawiera zmienne środowiskowe z wrażliwymi sekretami, w tym INTERNAL_API_KEY, JWT_SECRET, dane logowania administratora CouchDB oraz klucze AWS, które stają się dostępne dla atakującego po eksploitacji. Uzyskanie danych uwierzytelniających CouchDB umożliwia bezpośredni dostęp do bazy danych, enumerację baz wszystkich tenantów oraz odczyt rekordów użytkowników (m.in. adresów e-mail).
Atakujący może wykonać dowolny kod JavaScript na serwerze (RCE), wyekstrahować wszystkie wrażliwe sekrety środowiskowe (klucze API, JWT, dane CouchDB, klucze AWS) oraz uzyskać pełny dostęp do baz danych wszystkich tenantów i zawartych w nich danych użytkowników.
Należy zaktualizować Budibase do wersji 3.30.4, która zawiera poprawkę. Użytkownicy korzystający z Budibase Cloud powinni zweryfikować, czy dostawca wdrożył aktualizację. Instancje self-hosted nie wymagają działania naprawczego w związku z tą podatnością.
Budibase w wersji Cloud (SaaS) wcześniejszej niż 3.30.4 — wyłącznie środowisko Budibase Cloud; wdrożenia self-hosted nie są podatne.
Według opisu podatność dotyczy WYŁĄCZNIE Budibase Cloud (SaaS). Środowisko self-hosted używa natywnych widoków CouchDB i nie jest narażone. Autor opisu potwierdził możliwość eksploitacji poprzez weryfikację dostępu do CouchDB i enumerację baz tenantów.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:LBudibase
APPBudibase< 3.30.4
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