🇰🇷 한글 설명
mlflow 3.11.0 미만 버전에서 임시 디렉토리를 생성할 때 권한 설정이 너무 느슨하게(0o777 또는 0o770) 설정되는 취약점이 존재합니다. 이를 통해 로컬 공격자가 모델 아티팩트를 변조할 수 있으며, 변조된 cloudpickle 객체가 역직렬화될 때 임의 코드가 실행될 수 있습니다. 특히 NFS가 활성화된 Databricks와 같은 공유 환경에서 위험도가 매우 높습니다.
💡 쉬운 설명
프로그램이 임시 파일을 만드는 폴더의 잠금 장치가 허술하여, 다른 사용자가 몰래 파일을 바꿔치기할 수 있는 문제입니다. 공격자가 악성 코드가 담긴 파일을 심어두면, 프로그램이 이를 읽는 순간 컴퓨터가 해킹될 수 있습니다.
🇺🇸 원문 (English)
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.
📍 영향받는 시스템
mlflow versions prior to 3.11.0
⚔️ 공격 벡터
로컬 공격자가 공유 디렉토리 내의 모델 아티팩트를 변조하여 임의 코드 실행(ACE) 유도
🛡️ 대응 방법
mlflow를 3.11.0 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 Version이 3.11.0 미만이면 취약한 상태입니다.
pip show mlflow | grep Version