[공격] 분석 — CVE-2026-10043
MosaicML Composer is vulnerable to RCE via insecure deserialization of checkpoint files, requiring immediate restriction of untrusted model file loading.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00294 · 악용난이도 hard
🔍 공격 기법
- 트리거 조건:
MosaicML Composer가 체크포인트(Checkpoint) 파일을 파싱하는 과정에서 입력 데이터에 대한 검증 없이 역직렬화(Deserialization)를 수행할 때 발생. 공격자가 조작한 악성 직렬화 객체가 포함된 파일이 로드되면 트리거됨. - 공격 단계:
- 정찰: 타겟 시스템이
MosaicML Composer를 사용하여 모델 학습/추론을 수행하는지 확인. - 초기 접근: 사회 공학적 기법을 통해 관리자가 악성 체크포인트 파일을 다운로드하게 하거나, 신뢰할 수 없는 저장소(Public Hub 등)에 악성 파일을 업로드하여 유도. (전제:
UI:R- 사용자가 파일을 열거나 페이지를 방문해야 함) - 실행 및 권한 획득: 대상이 조작된 체크포인트 파일을 로드하는 순간, 역직렬화 과정에서 임의 코드 실행(RCE). 현재 프로세스의 권한으로 명령어가 실행됨.
- 지속 및 영향: 쉘 획득 후 리버스 쉘(Reverse Shell) 연결 또는 내부 데이터 탈취.
- 정찰: 타겟 시스템이
- 공격 표면: 체크포인트 파일 로드 함수 및 관련 파라미터. 추정:
torch.load()와 같이 Python의pickle모듈을 사용하는 인터페이스가 주 타겟임. - CVSS 벡터 분석:
AV:L/AC:L/PR:N/UI:R은 네트워크를 통한 직접 공격보다는, 로컬 파일 실행이나 사용자 유도가 필수적인 '로컬/상호작용' 기반 공격임을 의미함.
악용 가능성: 본 취약점은 AV:L과 UI:R 벡터가 결합되어 있어, 네트워크를 통한 직접적인 침투보다는 사회공학적 기법을 통한 '파일 전달'이 선행되어야 하는 Hard 난이도의 공격 경로를 가집니다. 공격 표면은 MosaicML Composer가 체크포인트 파일을 파싱하는 로직에 집중되어 있으며, 특히 신뢰할 수 없는 외부 소스에서 제공한 모델 가중치나 설정 파일(checkpoint)을 로드하도록 유도하는 것이 핵심 트리거입니다. EPSS 점수가 0.00294로 매우 낮고 KEV에 등재되지 않은 점은 현재 야생(In-the-wild)에서 자동화된 웜 형태로 확산될 가능성은 희박함을 시사합니다. 그러나 이론적 심각도와 별개로, AI/ML 모델 공유 생태계의 특성상 사용자가 외부의 사전 학습된 모델 파일을 다운로드하여 실행하는 습성이 강하므로 이는 실질적인 공격 벡터가 됩니다. 결과적으로 공격자는 악성하게 조작된 직렬화 객체가 포함된 체크포인트 파일을 배포하고, 피해자가 이를 Composer 환경에서 로드하는 순간 프로세스 권한으로 임의 코드를 실행(RCE)하는 체인을 형성합니다.
💥 영향 분석
- 기술적 위험: RCE를 통해 시스템 전체 장악 가능. 모델 가중치 탈취, 학습 데이터 변조(Poisoning), 내부 네트워크 횡적 이동(Lateral Movement)의 교두보로 활용될 수 있음.
- 비즈니스 영향: 고가의 GPU 자원 및 AI 모델 IP 유출. 학습 파이프라인 오염으로 인한 서비스 신뢰도 하락 및 컴플라이언스 위반.
🔗 관련 취약점·체이닝
- 추정 체이닝 경로:
Insecure File Upload$\rightarrow$Deserialization of Untrusted Data$\rightarrow$RCE. - 유형 수준 분석: 파일 업로드 취약점이 있는 환경에서 공격자가 악성 체크포인트를 서버에 직접 올릴 수 있다면,
UI:R(사용자 상호작용) 제약을 우회하여 자동화된 RCE 체인을 구성할 가능성이 있음. 또한, 획득한 프로세스 권한이 낮을 경우 OS 커널 취약점과 체이닝하여Privilege Escalation으로 이어질 수 있음.
🔎 탐지
- 로그 지표: Python 프로세스가 갑작스럽게
/bin/sh,/bin/bash또는curl,wget같은 네트워크 도구를 자식 프로세스로 생성하는 행위. - 탐지 규칙 예시:
- EDR/Auditd:
parent_process == "python" && (process_name == "sh" || process_name == "bash") - Network: 모델 로드 시점에 평소와 다른 외부 IP로의 Outbound 연결 발생 (
Destination Port: 443, 80, 1337 등). - File System: 체크포인트 파일 확장자(
.pt,.bin,.ckpt) 내에cos\nsystem또는pickle관련 매직 바이트와 실행 명령어가 포함되었는지 스캔.
- EDR/Auditd:
- 오탐 및 튜닝: 정상적인 모델 배포 스크립트가 쉘 명령어를 호출하는 경우 오탐 발생 가능. 화이트리스트 기반의 프로세스 트리 분석 필요.
🛡️ 완화 방안
- 즉시(긴급 차단): 신뢰할 수 없는 출처(외부 커뮤니티, 검증되지 않은 S3 버킷 등)에서 제공하는 체크포인트 파일 로드 금지 및 ACL 제한. (난이도: 저 / 영향: 낮음 / 검증: 정책 공지 및 모니터링)
- 단기(완화):
torch.load()사용 시weights_only=True옵션 적용(지원 버전인 경우)하여 임의 코드 실행을 방지하고 텐서 데이터만 로드하도록 강제. (난이도: 중 / 영향: 일부 기능 제한 가능성 / 검증: 코드 리뷰 및 테스트 로딩) - 근본(해결):
MosaicML Composer를 해당 취약점이 해결된 최신 버전으로 업데이트. (난이도: 중 / 영향: 라이브러리 의존성 충돌 확인 필요 / 검증: 버전 확인 명령어로 패치 적용 여부 검증)
[파이프라인 근거]
본 리포트는 다중 소스 데이터의 일관성이 확인된 교차검증 결과(신뢰도 1.0)를 바탕으로 작성되었습니다. 실측 EPSS 값은 0.00294(백분위 0.21562)로 매우 낮아, 이론적 심각도(CVSS 7.8)와 달리 실제 야생에서의 악용 가능성은 현재 낮은 수준(Hard)으로 판단됩니다. 이에 따라 즉시 대응보다는 이번 주 내 처리하는 scheduled 우선순위로 결정되었습니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00294 · exploit=hard · in_scope=None