W MLflow w wersji 3.8.0 istnieje podatność typu command injection w funkcji `_install_model_dependencies_to_env()`, umożliwiająca wykonanie dowolnych poleceń systemowych. Atakujący może ją wykorzystać, dostarczając złośliwy artefakt modelu, co czyni ją szczególnie groźną w środowiskach wdrażających zewnętrzne lub niezaufane modele.
▸ Pokaż oryginał (EN)
A command injection vulnerability exists in MLflow's model serving container initialization code, specifically in the `_install_model_dependencies_to_env()` function. When deploying a model with `env_manager=LOCAL`, MLflow reads dependency specifications from the model artifact's `python_env.yaml` file and directly interpolates them into a shell command without sanitization. This allows an attacker to supply a malicious model artifact and achieve arbitrary command execution on systems that deploy the model. The vulnerability affects versions 3.8.0 and is fixed in version 3.8.2.
Podczas wdrażania modelu z parametrem `env_manager=LOCAL` MLflow odczytuje specyfikacje zależności z pliku `python_env.yaml` zawartego w artefakcie modelu. Odczytane wartości są następnie bezpośrednio wstawiane do polecenia powłoki (shell command) bez jakiejkolwiek sanityzacji ani walidacji danych wejściowych. Atakujący może umieścić w pliku `python_env.yaml` złośliwie spreparowane wartości zawierające sekwencje sterujące powłoką, co prowadzi do wykonania dowolnych poleceń w kontekście systemu uruchamiającego model.
Atakujący może osiągnąć pełne wykonanie dowolnych poleceń (RCE) na systemie wdrażającym model, co może skutkować przejęciem kontroli nad serwerem, kradzieżą danych, naruszeniem integralności środowiska lub dalszym lateral movement w sieci.
Należy zaktualizować MLflow do wersji 3.8.2, w której podatność została naprawiona. Do czasu aktualizacji należy unikać wdrażania modeli z niezaufanych źródeł oraz ograniczyć możliwość korzystania z parametru `env_manager=LOCAL` w środowiskach produkcyjnych.
MLflow w wersji 3.8.0 (producent: Lfprojects)
Podatność dotyczy wyłącznie wdrożeń z parametrem `env_manager=LOCAL`. Szczegóły techniczne dostępne w zgłoszeniu na platformie Huntr (huntr.com) oraz w commicie naprawczym w repozytorium GitHub projektu MLflow.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLfprojects Mlflow
APPLfprojects3.8.0 – 3.8.1
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)
Path traversal w MLflow — nadpisanie plików i eskalacja uprawnień
MLflow: path traversal w ekstrakcji archiwów tar umożliwia RCE