CVE-2026-80104
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 52 - wyżej niż 52% wszystkich znanych CVE
Streszczenie
DB-GPT buduje ścieżkę docelową dla przesłanego skilla na podstawie nazwy pliku multipart bez ograniczania jej do katalogu uploadu. Funkcja skill_upload nie kanonizuje ścieżki ani nie sprawdza, czy pozostaje w katalogu głównym, co pozwala na zapis plików poza nim. Endpoint jest dostępny bez uwierzytelnienia, co umożliwia zdalnemu atakującemu zapis dowolnych plików i uzyskanie wykonania kodu.
Ocena ryzyka
Nieuwierzytelniony atakujący może zapisać złośliwe pliki w dowolnym miejscu systemu plików, co może prowadzić do wykonania kodu w procesie serwera i pełnej kompromitacji aplikacji.
Rekomendacja
Zaktualizuj DB-GPT do wersji z poprawką. Dodatkowo ogranicz dostęp do endpointu uploadu i wymagaj uwierzytelnienia dla wszystkich operacji przesyłania plików.
Inne podatności w DB-GPT
Zobacz wszystkie- CVE-2026-51863Krytyczne
DB-GPT w wersjach v0.7.5 i 0.8.0 zawiera podatność na przejście katalogowe (directory traversal) w funkcji use_example_file (packages/dbgpt-app/src/dbgpt_app/openapi/api_v1/examples_api.py:129). Zdalny atakujący może wykorzystać tę ścieżkę do zapisu plików poza zamierzonym obszarem roboczym lub granicą przechowywania.
- CVE-2026-77933Krytyczne
DB-GPT do wersji 0.8.2 zawiera podatność na twardo zakodowane poświadczenia w domyślnym pliku docker-compose.yml, który ustawia statyczne MYSQL_ROOT_PASSWORD i publikuje port 3306 na wszystkich interfejsach. Atakujący mogący dotrzeć do portu 3306 lub współdzielonej sieci dbgptnet mogą uwierzytelnić się jako root@% i uzyskać pełny dostęp do bazy danych, w tym uprawnienia FILE i SUPER.
- CVE-2026-77932Krytyczne
DB-GPT do wersji 0.8.2 zawiera nieuwierzytelnioną podatność na zdalne wykonanie kodu, ponieważ endpoint /api/v1/chat/react-agent opiera się na atrapie funkcji get_user_from_headers, która przyznaje każdemu wywołującemu rolę administratora. Nieuwierzytelnieni atakujący mogą wysyłać prompty powodujące uruchomienie przez niesandboxowane narzędzia code_interpreter i shell_interpreter dowolnego kodu Python lub bash jako root w kontenerze serwera WWW, w tym dostęp do dołączonej bazy danych z domyślnymi poświadczeniami.
- CVE-2026-51869Krytyczne
DB-GPT v0.8.0 sandbox API po cichu przechodzi na LocalRuntime i wykonuje kod na hoście.
- CVE-2026-51866Krytyczne
W DB-GPT 0.7.5 i 0.8.0 umiejętność (skill) przesłana przez rzeczywisty endpoint /api/v1/skills/upload może zostać następnie wykonana przez rzeczywisty przepływ /api/v1/chat/react-agent. Pozwala to na uruchomienie wcześniej wgranej, potencjalnie złośliwej umiejętności w kontekście agenta.
- CVE-2026-51864Krytyczne
DB-GPT w wersjach 0.7.5 i 0.8.0 zawiera podatność typu directory traversal w funkcji python_file_upload (packages/dbgpt-app/src/dbgpt_app/openapi/api_v1/python_upload_api.py:42). Zdalny atakujący może wykorzystać zweryfikowaną ścieżkę eksploatacji do zapisu plików poza zamierzonym obszarem roboczym lub granicą przechowywania.
- CVE-2026-51862Krytyczne
DB-GPT 0.8.0 zawiera podatność typu directory traversal w funkcji skill_upload (packages/dbgpt-app/src/dbgpt_app/openapi/api_v1/agentic_data_api.py:40). Zdalny atakujący może wykorzystać zweryfikowaną ścieżkę eksploatacji do zapisu plików poza zamierzonym obszarem roboczym lub granicą przechowywania.
- CVE-2026-73034Krytyczne
DB-GPT v0.8.1 zawiera nieuwierzytelnioną podatność na przechodzenie po ścieżkach, która pozwala zdalnym atakującym zapisywać dowolne pliki w dowolnej lokalizacji na serwerze poprzez wstrzyknięcie sekwencji przechodzenia po katalogach do nagłówka HTTP user_id w punkcie końcowym przesyłania plików Python. Atakujący mogą wysłać spreparowane żądanie multipart upload z zatrutym nagłówkiem user_id, aby opuścić zamierzony katalog przesyłania i zapisać treści kontrolowane przez atakującego w lokalizacjach takich jak haki startowe Pythona, katalogi cron lub skrypty agentów, co prowadzi do zdalnego wykonania kodu.
Oryginalny opis (angielski, źródło NVD)
DB-GPT builds the destination path for an uploaded skill from the multipart filename without constraining it to the upload directory. skill_upload in packages/dbgpt-app/src/dbgpt_app/openapi/api_v1/agentic_data_api.py takes file.filename as given and writes the request body to upload_dir / filename. A path composed with that operator discards the left operand when the right one is absolute and follows parent references otherwise, so a filename such as ../../../tmp/x or /tmp/x resolves outside the intended directory; nothing canonicalises the result, checks that it remains under the upload root, or prevents a .py suffix. The route's only dependency is get_user_from_headers in dbgpt_serve/utils/auth.py, which returns a request carrying the admin role whether or not a user_id header is supplied, so the endpoint is reachable without credentials. A remote attacker holding no account can therefore write attacker-controlled bytes to any path the server process can write, place a new Python module inside the application package or replace one the application already imports, and obtain code execution in the server process when that module is next imported.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

