[공격] 분석 — CVE-2026-24157
CVE-2026-24157 is a high‑severity deserialization flaw in NVIDIA NeMo’s checkpoint loader that enables remote code execution when untrusted checkpoints are processed; immediate mitigation and monitoring are required.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00654 · 악용난이도 hard
🔍 공격 기법
-
공격 표면
- NeMo 프레임워크가 제공하는
torch.load·pickle.load기반 체크포인트 로딩 API(예:load_checkpoint(path))에 파일 경로 혹은 URL 파라미터를 전달할 수 있는 엔드포인트. - 로컬 파일 시스템 접근 권한이 제한된 서비스 계정이라도, 공격자는 신뢰되지 않은 직렬화 객체를 포함한 체크포인트 파일을 업로드하거나 원격 위치에서 다운로드하도록 유도 가능함([교차검증] 다중 소스에서 일관성이 확인됐다).
- NeMo 프레임워크가 제공하는
-
트리거 조건
AV:L(로컬) 이지만 서비스가 내부 네트워크 혹은 CI/CD 파이프라인 등 자동화된 스크립트에 의해 체크포인트를 로드할 경우, 공격자는 악의적인 파일을 사전에 배치하고 해당 경로를 인자로 전달하면 트리거됨.AC:L·PR:L·UI:N→ 인증·사용자 입력 없이 자동화된 워크플로우에서 실행 가능.
-
공격 단계
- 정찰 – CI/CD 파이프라인, 모델 서빙 서비스 등 NeMo를 호출하는 프로세스를 식별하고 체크포인트 경로 파라미터가 외부 입력에 의해 결정되는지 확인.
- 초기 접근 – 악성 직렬화 객체(예:
__reduce__메서드 오버라이드)와 함께 조작된.ckpt파일을 저장소 혹은 HTTP 서버에 업로드. - 실행·권한 획득 – 서비스가 해당 체크포인트를 로드하면
pickle역직렬화 과정에서 임의 코드(os.system,subprocess.Popen)가 실행되어 서비스 계정 권한으로 명령이 수행됨. - 지속 – 생성된 악성 프로세스는 백도어·크론 잡 등을 남겨 재부팅 후에도 유지 가능.
- 영향 –
C:H/I:H/A:H(전체 기밀성, 무결성, 가용성 손상) → 데이터 탈취·변조·서비스 중단.
-
관측 지표
- 비정상적인 파일 경로(
*.ckpt) 로드 로그. pickle역직렬화 시도 기록에__reduce__,subprocess등 위험 함수 호출 흔적.
- 비정상적인 파일 경로(
악용 가능성: 이 취약점은 AV:L (로컬) · AC:L (낮은 복잡도) · PR:L (저권한 필요) · UI:N (사용자 개입 없음) 벡터에 따라, 공격자가 대상 머신에 직접 접근해 임의의 체크포인트 파일을 배치할 수만 하면 별다른 사전 작업 없이 악성 코드를 실행할 수 있습니다. 복잡도가 낮아 파일 경로를 조작하거나 직렬화된 객체를 삽입하는 것만으로도 RCE가 발생하므로, 실제 공격 난이도는 “hard” 등급이라 하더라도 기술적인 장벽은 비교적 낮다고 볼 수 있습니다. EPSS 0.00654라는 실측값과 KEV 미등재 사실은 현재까지 이 취약점이 실제 악용된 사례가 매우 드물며, 위협 인식 수준이 낮다는 것을 의미합니다. 공격 표면은 NVIDIA NeMo Framework의 체크포인트 로딩 함수(예: torch.load 또는 neMo.checkpoint_load)이며, 파일 경로 파라미터와 모델 서버가 제공하는 REST/GRPC 엔드포인트가 노출될 경우 원격 서비스에서도 동일한 로컬 로딩 로직이 호출되어 위험이 확대됩니다. 따라서 공격자는 먼저 대상 시스템에 접근 권한을 획득하고(예: 내부 계정 탈취 등) 악성 체크포인트 파일을 해당 경로에 배치한 뒤, 정상적인 모델 로드 과정을 유도해 코드를 실행합니다. 이 과정에서 추가적인 권한 상승이나 정보 유출은 이미 확보된 저권한 사용자 컨텍스트를 바탕으로 쉽게 연쇄될 수 있습니다.
💥 영향 분석
- 공격이 성공하면 원격 코드가 실행되어 서비스 계정 권한을 획득하고, 시스템 파일 접근·데이터베이스 탈취·네트워크 트래픽 변조 등 전반적인 침해가 가능함.
- 기밀 데이터(모델 가중치·학습 데이터)와 운영 중인 AI 파이프라인 전체에 대한 무결성 손상이 발생할 수 있음.
🔗 관련 취약점·체이닝
- Deserialization (CWE‑502) 계열의 다른 취약점과 연계될 경우, 예를 들어 웹 애플리케이션에서 파일 업로드 검증을 우회해 악성 직렬화 객체를 삽입하는 공격(CVE‑2022‑XXXXX)과 결합하면 초기 진입 장벽이 낮아짐.
- 권한 상승: 서비스 계정이 제한된 권한이라도, 동일 호스트 내에 존재하는
sudo설정이 잘못된 경우(NOPASSWD)를 이용해 루트 권한으로 확장 가능(추정). - 네트워크 분리 우회: 내부 CI 파이프라인이 외부 레포지터리를 자동 pull 하는 경우, 악성 레포지터리 URL을 삽입해 초기 접근 없이도 RCE를 달성할 수 있음.
🔎 탐지
- 로그 기반:
load_checkpoint호출 시 전달된 파일 경로와 해시값을 기록하고, 평소 사용되지 않는 경로나 외부 URL이 포함될 경우 알림. - EDR/AV:
pickle역직렬화 중__reduce__,subprocess.Popen,os.system등 위험 함수 호출 패턴을 탐지하는 서명 적용. - 네트워크: CI/CD 파이프라인에서 외부 저장소로부터
.ckpt파일을 다운로드하는 트래픽에 대한 허용 리스트 검토.
🛡️ 완화 방안
- 즉시: 신뢰된 체크포인트만 로드하도록 경로 화이트리스트 적용·외부 입력 차단.
- 패치/업데이트: NVIDIA NeMo 공식 패치를 확인하고 배포(가능 시).
- 직렬화 제한:
pickle대신 안전한 포맷(torch.save와torch.load를map_location='cpu'와 함께 사용)이나 커스텀 검증 로직을 도입. - 권한 최소화: 모델 서빙·학습 서비스 계정을 최소 권한으로 실행하고, 필요 시 컨테이너 격리 및 SELinux/AppArmor 정책 적용.
본 보고서는 다중 소스 교차검증([교차검증] 일관성 확인)과 실측 EPSS 값(0.00654)·우선순위 규칙 기반 결정([실측 악용예측], [우선순위 결정])을 근거로 작성되었습니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00654 · exploit=hard · in_scope=None