CVE-2026-53556
ŚrednieCVSS 6.0Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 32 - wyżej niż 32% wszystkich znanych CVE
Streszczenie
SQLBot przed wersją 1.9.0 zawiera podatność w punkcie końcowym POST /api/v1/datasource/previewData, gdzie wartość table_name kontrolowana przez klienta jest wstawiana do generowanego SQL bez bezpiecznego obsługiwania identyfikatorów. Uwierzytelniony użytkownik może skonfigurować źródło danych dla wewnętrznego PostgreSQL i wysłać spreparowaną nazwę tabeli, która pozostaje operacją SELECT, ale wywołuje funkcje pg_read_file(), pg_read_binary_file() lub pg_ls_dir(). W domyślnej konfiguracji zaufanego uwierzytelniania loopback, wewnętrzne połączenie akceptuje nieprawidłowe poświadczenia i wykonuje się z uprawnieniami superużytkownika PostgreSQL, co pozwala na odczyt plików systemowych, takich jak /etc/hosts i /etc/passwd, w odpowiedzi API previewData, potencjalnie ujawniając konfigurację, poświadczenia, sekrety uwierzytelniania i kod źródłowy. Problem naprawiono w wersji 1.9.0.
Ocena ryzyka
Podatność umożliwia uwierzytelnionemu użytkownikowi odczyt wrażliwych plików z serwera, w tym plików konfiguracyjnych, poświadczeń i sekretów, co może prowadzić do pełnej kompromitacji systemu i wycieku danych.
Rekomendacja
Zaleca się natychmiastową aktualizację SQLBot do wersji 1.9.0 lub nowszej, która zawiera poprawkę eliminującą podatność. Dodatkowo należy ograniczyć dostęp do punktu końcowego previewData i zweryfikować konfigurację uwierzytelniania wewnętrznej bazy danych.
Inne podatności w SQLBot
Zobacz wszystkie- CVE-2026-42463Wysokie
SQLBot przed wersją 1.8.0 zawiera podatność typu Cross-Workspace IDOR oraz obejście autoryzacji w punktach końcowych /api/v1/datasource/exportDsSchema oraz /api/v1/datasource/uploadDsSchema. Atakujący może uzyskać dostęp do schematów baz danych i źródeł danych należących do innych najemców/obszarów roboczych.
- CVE-2026-93660Średnie
SQLBot do wersji 1.10.1 nie weryfikuje własności dashboardów w punktach końcowych update_resource i update_canvas, co pozwala uwierzytelnionym członkom obszaru roboczego modyfikować prywatne dashboardy innych użytkowników. Atakujący mogą podać dowolne identyfikatory dashboardów, aby zmienić ich nazwy oraz nadpisać dane komponentów, style kanwy i informacje o widokach należące do innych członków obszaru roboczego.
- CVE-2026-53557Wysokie
W SQLBot przed wersją 1.9.0 uwierzytelniony użytkownik może podać spreparowaną wartość sheet["tableName"] w konfiguracji źródła danych Excel, która jest przechowywana bez bezpiecznego przetwarzania identyfikatora. Przy usuwaniu źródła danych wartość ta jest wstawiana do SQL i wykonywana przez PostgreSQL, co umożliwia second-order SQL injection.
- CVE-2026-53555Średnie
SQLBot przed wersją 1.9.0 umożliwia uwierzytelnionemu użytkownikowi przesłanie logo asystenta w formacie image/svg+xml przez PATCH /api/v1/system/assistant/ui, a SQLBot przechowuje SVG bez sanityzacji lub walidacji osadzonych aktywnych treści. SQLBot następnie serwuje plik inline z tego samego pochodzenia aplikacji przez GET /api/v1/system/assistant/picture/{filename}. Gdy inny użytkownik załaduje ten zasób, JavaScript osadzony w SVG wykonuje się w kontekście aplikacji webowej SQLBot, co prowadzi do trwałego cross-site scripting z dostępem do danych i akcji dostępnych w sesji ofiary. Problem naprawiono w wersji 1.9.0.
- CVE-2026-53554Wysokie
W SQLBot przed wersją 1.9.0 endpoint POST /api/v1/datasource/parseExcel używa kontrolowanej przez atakującego nazwy pliku z multipart do wyboru miejsca zapisu, zapisuje treść przed zakończeniem walidacji i może przekształcić podwójne rozszerzenie w plik źródłowy Pythona. Plik trafia do katalogu alembic/versions/ i jest importowany przy starcie SQLBot.
- CVE-2026-72743Średnie
SQLBot do wersji 1.10.0 zawiera podatność na trwały skrypt XSS w komponencie SQText, który renderuje dane TinyMCE przez v-html bez sanityzacji. Atakujący, którzy mogą modyfikować treść widżetu tekstowego, mogą wstrzyknąć dowolny HTML i JavaScript, który wykona się dla wszystkich użytkowników przeglądających dashboard.
- CVE-2026-33324Wysokie
SQLBot w wersji 1.7.0 i wcześniejszych jest podatny na wstrzykiwanie promptu w interfejsie Text2SQL, gdzie parametr pytania użytkownika jest bezpośrednio konkatenowany do promptu LLM, a wyodrębnione SQL jest wykonywane bez walidacji, co może prowadzić do zdalnego wykonania kodu przez COPY FROM PROGRAM w PostgreSQL.
Oryginalny opis (angielski, źródło NVD)
SQLBot is an intelligent Text-to-SQL system based on large language models and RAG. Prior to 1.9.0, the POST /api/v1/datasource/previewData endpoint in backend/apps/datasource/crud/datasource.py incorporates the client-controlled table_name value into generated SQL without safe identifier handling. An authenticated user can configure a datasource for SQLBot's internal PostgreSQL service and submit a crafted table_name that remains a SELECT operation under the read-only policy while invoking pg_read_file(), pg_read_binary_file(), or pg_ls_dir(). In the default tested trusted loopback authentication configuration, the internal connection accepts invalid credentials and executes with PostgreSQL superuser privileges, allowing filesystem content such as /etc/hosts and /etc/passwd to be returned in the previewData API response and potentially exposing configuration, credentials, authentication secrets, and source code. This issue is fixed in version 1.9.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

