W wersji v0.6.0 platformy db-gpt (eosphoros-ai/db-gpt) endpoint API `POST /v1/personal/agent/upload` umożliwia nieuwierzytelnionemu atakującemu wgranie dowolnych plików w dowolne miejsce systemu plików ofiary. Podatność jest krytyczna, ponieważ może prowadzić do zdalnego wykonania kodu (RCE).
▸ Pokaż oryginał (EN)
In eosphoros-ai/db-gpt version v0.6.0, the web API `POST /v1/personal/agent/upload` is vulnerable to Arbitrary File Upload with Path Traversal. This vulnerability allows unauthorized attackers to upload arbitrary files to the victim's file system at any location. The impact of this vulnerability includes the potential for remote code execution (RCE) by writing malicious files, such as a malicious `__init__.py` in the Python's `/site-packages/` directory.
Endpoint API nie weryfikuje prawidłowo ścieżki docelowej przesyłanego pliku, co umożliwia atak typu path traversal (CWE-22). Nieuwierzytelniony atakujący może skonstruować żądanie HTTP zawierające sekwencje traversal w nazwie pliku lub ścieżce, powodując zapis pliku poza zamierzonym katalogiem. Przykładowy scenariusz ataku obejmuje umieszczenie złośliwego pliku `__init__.py` w katalogu `/site-packages/` Pythona, co przy kolejnym zaimportowaniu pakietu przez aplikację skutkuje wykonaniem kodu atakującego.
Atakujący może zapisać dowolny plik w dowolnym miejscu systemu plików serwera, co w konsekwencji umożliwia zdalne wykonanie kodu (RCE) i pełne przejęcie kontroli nad systemem.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Dodatkowo — do czasu wdrożenia poprawki — zaleca się ograniczenie dostępu do endpointu `POST /v1/personal/agent/upload` na poziomie firewall lub reverse proxy oraz wymaganie uwierzytelnienia dla wszystkich wywołań API.
eosphoros-ai/db-gpt w wersji v0.6.0
Szczegóły techniczne podatności zostały opublikowane w ramach programu bug bounty na platformie huntr.com (bounty ID: f7fbf76e-aa1c-4106-b007-e9579f4f7d5f).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDbgpt Db Gpt
APPDbgpt0.6.0
Powiązane podatności
SQL Injection i zapis plików w db-gpt umożliwiające RCE
Absolute Path Traversal w DB-GPT — zapis plików w dowolnej lokalizacji
Arbitrary file write przez path traversal w DB-GPT (knowledge API)
Dowolny zapis plików w db-gpt przez podatność path traversal w RAG-knowledge
Dowolne wykonanie kodu przez niekontrolowane SQL API w db-gpt