W aplikacji ChuanhuChatGPT (gaizhenbiao/chuanhuchatgpt) wykryto podatność typu path traversal wynikającą z braku sanityzacji danych wejściowych w wielu funkcjach systemu. Podatność jest krytyczna, ponieważ może prowadzić do zdalnego wykonania kodu (RCE) bez żadnego uwierzytelnienia.
▸ Pokaż oryginał (EN)
A path traversal vulnerability exists in the latest version of gaizhenbiao/chuanhuchatgpt. The vulnerability arises from unsanitized input handling in multiple features, including user upload, directory creation, and template loading. Specifically, the load_chat_history function in modules/models/base_model.py allows arbitrary file uploads, potentially leading to remote code execution (RCE). The get_history_names function in utils.py permits arbitrary directory creation. Additionally, the load_template function in utils.py can be exploited to leak the first column of CSV files. These issues stem from improper sanitization of user inputs concatenated with directory paths using os.path.join.
Problem występuje w trzech miejscach: funkcja load_chat_history w pliku modules/models/base_model.py umożliwia przesyłanie dowolnych plików na serwer poprzez niezabezpieczony upload, co może prowadzić do RCE. Funkcja get_history_names w utils.py pozwala na tworzenie dowolnych katalogów w systemie plików. Funkcja load_template w utils.py może być wykorzystana do odczytu pierwszej kolumny plików CSV, co prowadzi do wycieku danych. Wspólną przyczyną wszystkich trzech problemów jest nieprawidłowa sanityzacja danych wejściowych użytkownika przed ich połączeniem ze ścieżkami katalogów za pomocą os.path.join.
Nieuwierzytelniony atakujący zdalny może przesyłać dowolne pliki na serwer (co w konsekwencji może prowadzić do RCE), tworzyć arbitralne katalogi w systemie plików oraz odczytywać dane z plików CSV przechowywanych na serwerze.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — poprawka została wprowadzona w commicie 952fc8c3cbacead858311747cddd4bedcb4721d7 w repozytorium GitHub projektu
Najnowsza wersja aplikacji gaizhenbiao/chuanhuchatgpt (wersje wskazane w referencjach producenta)
Szczegóły podatności zostały opublikowane za pośrednictwem platformy huntr.com (program bug bounty). Podatność dotyczy trzech odrębnych funkcji w kodzie źródłowym projektu.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HGaizhenbiao Chuanhuchatgpt
APPGaizhenbiao< 20240918
Powiązane podatności
Nadpisanie plików konfiguracyjnych w ChuanhuChatGPT (file overwrite)
Nieautoryzowany restart serwera w ChuanhuChatGPT poprzez endpoint /queue/join
Tworzenie arbitralnych folderów na serwerze w ChuanhuChatGPT
SSRF w interfejsie upload ChuanhuChatGPT — dostęp do zasobów wewnętrznych
Path traversal w ChuanhuChatGPT — dostęp do poufnych plików