
# CVE-2023-1177 개념 증명 익스플로잇 MLflow의 경로 탐색 취약점인 CVE-2023-1177에 대한 개념 증명 익스플로잇으로, 조작된 모델 이름을 통해 인증되지 않은 파일 접근을 시연합니다.
MLflow는 엔드투엔드 머신러닝 수명 주기를 관리하기 위한 오픈소스 플랫폼입니다.
주요 기능:
MLflow는 네 가지 주요 기능을 다룹니다:
실험을 추적하여 매개변수와 결과를 기록하고 비교합니다(MLflow Tracking).
ML 코드를 재사용 가능하고 재현 가능한 형태로 패키징하여 다른 데이터 과학자와 공유하거나 프로덕션으로 전송합니다(MLflow Projects).
다양한 ML 라이브러리의 모델을 다양한 모델 서빙 및 추론 플랫폼에 배포하고 관리합니다(MLflow Models).
모델 버전 관리, 스테이지 전환, 주석을 포함한 MLflow Model의 전체 수명 주기를 협업적으로 관리하기 위한 중앙 모델 저장소를 제공합니다(MLflow Model Registry).
라이브러리 독립적: MLflow는 라이브러리 독립적이므로 모든 함수가 REST API와 CLI를 통해 접근 가능하기 때문에 모든 머신러닝 라이브러리 및 모든 프로그래밍 언어에서 사용할 수 있습니다.
API: 이 프로젝트는 편의를 위해 Python API, R API, Java API를 포함합니다.
출처: https://mlflow.org/docs/latest/index.html
MLflow에서 경로 탐색(path traversal) 취약점이 발견되었습니다. 경로 탐색은 공격자가 의도된 디렉터리 외부에 저장된 파일과 디렉터리에 접근할 수 있게 하는 웹 취약점 유형입니다. 공격자는 이 취약점을 악용하기 위해 다양한 기법을 사용하여 민감한 데이터에 대한 무단 접근을 얻거나 임의 코드를 실행합니다. 경로 탐색 공격은 입력 검증 및 접근 제어 조치를 통해 방지할 수 있습니다.
이 취약점은 Dan McInerney 에 의해 발견되었습니다.
자세히 보기: https://huntr.dev/bounties/1fe8f21a-c438-4cba-9add-e8a5dab94e28/
[CVE-2023-1177]
GitHub 저장소 mlflow/mlflow 2.2.1 이전 버전의 경로 탐색: '..\filename'.
자세히 보기: https://nvd.nist.gov/vuln/detail/CVE-2023-1177
취약점을 테스트하고 악용하는 데 사용할 수 있는 작은 Python 스크립트를 만들었습니다.
모델 이름에 대한 고유 ID를 생성한 다음 모든 URL에 순차적으로 접근합니다.
