1. 개요

- AI/ML 대상 버그 바운티 플랫폼 Huntr에서 AI/ML 오픈소스 플랫폼의 보안취약점 발견
- 영향을 받는 플랫폼은 MLflow, ClearML, Hugging Face Transformers로, 다양한 산업에서 사용되는 AI 솔루션

> MLflow: AI 라이프 사이클 전 과정을 관리해주는 MLOps 플랫폼
> ClearML: 다양한 사용자들이 AI 서비스를 사용 및 개발할 수 있도록 해주는 E2E MLOps 플랫폼
> Hugging Face Transformers: Hugging Face社에서 제공하는 AI 개발 라이브러리

 

1.1 MLOps [1][2]

- ML 시스템 개발, 배포, 유지보수를 효율적이고, 지속할 수 있도록 하는 업무 방식

 

2. 주요내용

AI/ML 플랫폼 CVE CVSS 설명 취약한 버전
MLflow CVE-2023-6831 [3] 10.0 - 공격자가 유효성 검사를 우회하고 서버의 모든 파일을 삭제할 수 있음 [4]
> mlflow/utils/uri.py의 verify_path_is_safe 메소드가 URL 인코딩을 올바르게 필터링하지 않아 발생
> URL 인코딩(%2E%2E)을 통해 verify_path_is_safe 메소드를 우회할 수 있음
> 악용에 성공한 공격자는 서버의 모든 파일을 삭제할 수 있음
MLflow 2.9.2 이전 버전
CVE-2024-0520 - mlflow.data 모듈의 결함으로 인해 공격자가 데이터 세트를 조작할 수 있음 [5]
응답 헤더에 "Content-Disposition" 헤더가 설정된 경우 "filename" 값을 검증 없이 최종 파일 경로를 생성
> 악용에 성공한 공격자는 업로드한 파일을 이용해 RCE를 수행할 수 있음
CVE-2023-6977 [6] - 공격자가 경로 유효성 검사 우회해 서버의 민감한 파일을 읽을 수 있음 [7]
> mlflow/utils/uri.py의 is_local_uri 메서드에서 parsed_uri.hostname() 를 사용해 경로 확인 (hostname == "." or hostname.stratwith(127.0.0.1) or hostname.startswith("localhost")) 및 우회
> 악용에 성공한 공격자는 업로드한 민감 파일에 접근해 내용을 확인할 수 있음
CVE-2023-6709 [8] 악성 레시피 구성을 로드하여 원격 명령을 실행할 수 있음 [9]
> MLflow는 jinja2 템플릿 엔진을 이용해 사용자가 제어할 수 있는 템플릿 구성 파일을 직접 로드하여 레시피 프레임워크를 구축하도록 함
> mlflow/utils/file_utils.py의 render_and_merge_yaml 메서드는 랜더링 및 합병에 샌드박스를 사용하지 않고 jinja2 라이브러리를 사용
> 악용에 성공한 사용자는 RCE를 수행할 수 있음
ClearML CVE-2023-6778 [10] 5.4 - 마크다운 편집기에 저장된 XSS 취약점
> 프로젝트 설명 및 보고서 섹션에 모두 사용되는 Markdown Editor 구성 요소에서 입력값을 적절히 삭제하지 않아 발생 [11]
> 악성 XSS 페이로드가 삽입되어 사용자 계정이 손상될 수 있음
ClearML Server 1.13.0 이전 버전
Hugging Face
Transformers
CVE-2023-7018 [12] 9.6 기능에 제한이 없어 악성 파일이 자동으로 로드되어 잠재적으로 원격 코드 실행할 수 있음 [13]
> pickle.load를 사용하여 원격 레포에서 vocab.pkl 파일을 아무런 제한 없이 자동으로 로드하기 위해 TransfoXLTokenizer를 구현
> 블랙리스트 및 기타 검사를 우회하여 감염된 모델이 로드되도록 함
> 악성 파일을 로드하여 RCE를 수행할 수 있음
Transformers 4.36 이전 버전

 

3. 조치사항

- 취약한 버전의 플랫폼 사용자의 경우 최신 패치 적용

> MLflow 2.9.2 / ClearML Server 1.13.0 / Transformers 4.36

 

4. 참고

[1] https://www.databricks.com/glossary/mlops
[2] https://jaemunbro.medium.com/mlops%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B3%A0-84f68e4690be
[3] https://nvd.nist.gov/vuln/detail/CVE-2023-6831
[4] https://huntr.com/bounties/0acdd745-0167-4912-9d5c-02035fe5b314/
[5] https://huntr.com/bounties/93e470d7-b6f0-409b-af63-49d3e2a26dbc/
[6] https://nvd.nist.gov/vuln/detail/CVE-2023-6977
[7] https://huntr.com/bounties/fe53bf71-3687-4711-90df-c26172880aaf/
[8] https://nvd.nist.gov/vuln/detail/CVE-2023-6709
[9] https://huntr.com/bounties/9e4cc07b-6fff-421b-89bd-9445ef61d34d/
[10] https://nvd.nist.gov/vuln/detail/CVE-2023-6778
[11] https://huntr.com/bounties/5f3fffac-0358-48e6-a500-81bac13e0e2b/
[12] https://nvd.nist.gov/vuln/detail/CVE-2023-7018
[13] https://huntr.com/bounties/e1a3e548-e53a-48df-b708-9ee62140963c/

+ Recent posts