CVE-2026-4137
WysokieCVSS 7.8Streszczenie
W wersjach mlflow/mlflow przed 3.11.0 funkcja `get_or_create_nfs_tmp_dir()` tworzy tymczasowe katalogi z uprawnieniami do zapisu dla wszystkich (0o777), a funkcja `_create_model_downloading_tmp_dir()` tworzy katalogi z uprawnieniami do zapisu dla grupy (0o770). Te niebezpieczne uprawnienia umożliwiają lokalnym atakującym manipulację artefaktami modeli, co może prowadzić do wykonania dowolnego kodu.
Ocena ryzyka
Podatność ta jest szczególnie krytyczna w środowiskach z współdzielonymi montażami NFS, takich jak Databricks, gdzie NFS jest domyślnie włączony. Atakujący mogą wykorzystać tę lukę do przejęcia kontroli nad systemem poprzez manipulację danymi.
Rekomendacja
Zaleca się aktualizację do wersji mlflow/mlflow 3.11.0 lub nowszej, aby usunąć tę podatność. Dodatkowo, należy rozważyć ograniczenie uprawnień do tworzenia tymczasowych katalogów w środowiskach współdzielonych.
Oryginalny opis (angielski, źródło NVD)
In mlflow/mlflow versions prior to 3.11.0, the `get_or_create_nfs_tmp_dir()` function in `mlflow/utils/file_utils.py` creates temporary directories with world-writable permissions (0o777), and the `_create_model_downloading_tmp_dir()` function in `mlflow/pyfunc/__init__.py` creates directories with group-writable permissions (0o770). These insecure permissions allow local attackers to tamper with model artifacts, such as cloudpickle-serialized Python objects, and achieve arbitrary code execution when the tampered artifacts are deserialized via `cloudpickle.load()`. This vulnerability is particularly critical in environments with shared NFS mounts, such as Databricks, where NFS is enabled by default. The issue is a continuation of the vulnerability class addressed in CVE-2025-10279, which was only partially fixed.

