CVE-2026-53554
WysokieCVSS 7.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 30 - wyżej niż 30% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może umieścić złośliwy plik Pythona, który zostanie wykonany przy starcie lub migracji SQLBot, co prowadzi do zdalnego wykonania kodu w kontekście aplikacji. Może to skutkować pełnym przejęciem systemu.
Rekomendacja
Zaktualizuj SQLBot do wersji 1.9.0 lub nowszej. Zweryfikuj zawartość katalogu alembic/versions/ i ogranicz możliwość przesyłania plików przez nieuprzywilejowanych użytkowników.
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-53556Średnie
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.
- 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-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/parseExcel endpoint in backend/apps/datasource/api/datasource.py uses attacker-controlled multipart filename data when selecting where uploaded content is stored, writes the content before spreadsheet parsing and validation finish, and can transform a double-extension filename into a Python source file. An attacker able to submit a crafted multipart upload can use these behaviors to place attacker-controlled content in /opt/sqlbot/app/alembic/versions/ even when a spreadsheet parsing failure after the file write causes the endpoint to return an error. The planted file remains on disk, and subsequent SQLBot startup or migration processing causes Alembic to import the module and execute its module-level statements in the SQLBot application runtime. This issue is fixed in version 1.9.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

