W repozytorium mlflow/mlflow wykryto podatność typu path traversal w funkcji `extract_archive_to_dir`, umożliwiającą atakującemu nadpisanie dowolnych plików lub eskalację uprawnień. Podatność otrzymała maksymalny wynik CVSS 10.0, co czyni ją ekstremalnie niebezpieczną, szczególnie w środowiskach wielodostępnych.
▸ Pokaż oryginał (EN)
A path traversal vulnerability exists in the `extract_archive_to_dir` function within the `mlflow/pyfunc/dbconnect_artifact_cache.py` file of the mlflow/mlflow repository. This vulnerability, present in versions before v3.7.0, arises due to the lack of validation of tar member paths during extraction. An attacker with control over the tar.gz file can exploit this issue to overwrite arbitrary files or gain elevated privileges, potentially escaping the sandbox directory in multi-tenant or shared cluster environments.
Podatność wynika z braku walidacji ścieżek członków archiwum tar podczas ich wypakowywania w pliku `mlflow/pyfunc/dbconnect_artifact_cache.py`. Atakujący kontrolujący zawartość pliku tar.gz może umieścić w archiwum wpisy ze specjalnie spreparowanymi ścieżkami (np. zawierającymi sekwencje `../`), które po wypakowaniu zapiszą pliki poza docelowym katalogiem. W ten sposób możliwe jest opuszczenie katalogu sandbox i zapis w dowolnej lokalizacji systemu plików dostępnej dla procesu MLflow.
Atakujący może nadpisać dowolne pliki na serwerze lub uzyskać podwyższone uprawnienia, co w środowiskach wielodostępnych lub klastrach współdzielonych może prowadzić do pełnego przejęcia kontroli nad systemem lub innymi dzierżawcami.
Należy zaktualizować MLflow do wersji v3.7.0 lub nowszej, w której wprowadzono walidację ścieżek członków archiwum tar. Szczegóły poprawki dostępne są w commicie 3bf6d81ac4d38654c8ff012dbd0c3e9f17e7e346 w repozytorium GitHub mlflow/mlflow.
MLflow (mlflow/mlflow) w wersjach przed v3.7.0.
Podatność została zgłoszona za pośrednictwem platformy Huntr (bounty 36c314cf-fd6e-4fb0-b9b0-1b47bcdf0eb0). Szczególnie istotna w środowiskach wielodostępnych (multi-tenant) oraz współdzielonych klastrach obliczeniowych, gdzie różni użytkownicy mogą dostarczać archiwa tar.gz.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HLfprojects Mlflow
APPLfprojects< 3.9.0
Powiązane podatności
MLflow: nieautoryzowany dostęp do endpointów multipart upload (RCE)
MLflow: nieprawidłowa walidacja origin umożliwia RCE przez cross-origin request
Brak uwierzytelnienia w endpointach FastAPI jobs w MLflow (Auth Bypass / RCE)
Command injection w MLflow podczas inicjalizacji kontenera modelu
MLflow: path traversal w ekstrakcji archiwów tar umożliwia RCE