무슨 일이 있었나
_create_model_version()의 프롬프트 분기는 소스에 URL 스킴이 있을 때만 경로 검증이 실행되므로 스킴 없는 상대 소스를 허용하며, mlflow.prompt.is_prompt는 실제 값이 아닌 태그 존재로 추론됩니다. 이로 인해 원격 호출자가 임의의 서버 로컬 경로를 모델 아티팩트 위치로 등록하고 다시 읽을 수 있습니다. CISA SSVC는 이를 자동화 가능한 부분적 기술적 영향으로 분류합니다.
왜 중요한가
인증되지 않은 공격자는 기본 배포에서 MLflow 서버 프로세스가 읽을 수 있는 임의 파일(토큰, .env, 모델 아티팩트, 다른 테넌트의 데이터)을 읽을 수 있으며, 이는 자격 증명 탈취와 ML 플랫폼 내 추가적인 측면 이동으로 이어질 수 있습니다.
공격 경로
원격 호출자는 서버 로컬 경로를 모델 버전 아티팩트 위치로 저장하고(경로 검증은 소스에 URL 스킴이 있을 때만 실행됨) /api/2.0/mlflow/model-versions/get-artifact를 통해 이를 다시 읽어 MLflow 서버 프로세스가 접근 가능한 파일을 노출시킵니다.
영향받는 시스템
MLflow >= 3.10.0, < 3.17.0
완화 방안
MLflow 3.17.0으로 업그레이드하세요 (GHSA-m65p-9j7q-6w33). 인증되지 않은 모델 레지스트리 접근을 제한하세요.