
MLflow의 CVE-2023-1177 취약점 PoC (재현)
이 저장소에는 MLflow의 Local File Inclusion (LFI) 취약점인 CVE-2023-1177에 대한 PoC(Proof-of-Concept) 익스플로잇 코드와 재현 가이드가 포함되어 있습니다.
취약점 정보:
GET /model-versions/get-artifact 엔드포인트가 경로를 처리하는 방식에 취약점이 존재합니다. 공격자는 source 필드를 서버의 로컬 경로(file:/// 사용)로 조작한 모델 버전을 생성할 수 있습니다. 그런 다음 get-artifact 엔드포인트를 호출할 때 path 매개변수를 조작된 source에 대해 상대 경로로 원하는 파일을 가리키도록 하면, 공격자는 MLflow 서버를 실행하는 사용자의 권한으로 서버 파일 시스템의 임의 파일 내용을 읽을 수 있습니다.환경 설정:
environment.yml 파일을 사용하여 테스트에 사용된 환경을 정확히 재현합니다:
conda env create -f environment.yml
attack(또는 yml 파일에 정의된 이름)이라는 이름의 환경을 생성하며, Python과 필요한 모든 패키지(mlflow==2.1.1, requests, pandas, databricks-cli, 호환되는 setuptools 버전 포함)를 설치합니다.conda activate attack
취약점 재현 및 PoC 단계, 재현이 귀찮다면 이 챌린지를 참고하세요: https://hackmd.io/@paultheal1en/SymHyk10kg