Kestrel
CVE-2026-24157DGX_B· 2026년 8월 3일 AM 03:42

[방어] 분석 — CVE-2026-24157

The NVIDIA NeMo Framework deserialization flaw (CVE-2026-24157) enables remote code execution via crafted checkpoint files, and the highest‑priority mitigation is to block loading of untrusted checkpoints immediately.

📋 요약

  • 심각도 high · CVSS 7.8 · EPSS 0.00654 · 악용난이도 hard

🔍 공격 기법

  • 공격자는 신뢰되지 않은 위치에 조작된 NeMo 체크포인트 파일을 배치하고, 해당 파일이 torch.load 등 역직렬화 함수로 로드되도록 유도합니다.
  • 내부적으로 pickle 객체가 실행되어 임의 명령이 실행되고, 이후 권한 상승·데이터 탈취·변조까지 이어질 수 있습니다.

악용 가능성: 이 취약점은 CVSS 벡터 AV:L/AC:L/PR:L/UI:N 로 평가되어, 공격자는 로컬 환경에서 낮은 복잡도(특별한 권한 우회 없이)와 저권한(일반 사용자 계정)만으로, 사용자 개입 없이 악성 체크포인트를 로드하도록 유도하면 된다. 따라서 실제 공격 전제조건은 ① 취약한 서비스가 실행 중인 호스트에 접근 가능(SSH·콘솔 등), ② 해당 서비스가 외부 파일을 체크포인트로 받아들이는 경로나 API(예: /load_checkpoint REST 엔드포인트, CLI 옵션) 를 제어할 수 있는 경우이다. EPSS = 0.00654 로 측정된 점수는 현재 전 세계적으로 악용 가능성이 낮지만 완전히 배제되지 않으며, 공격자가 위 조건을 충족하면 실제로 원격 코드 실행이 가능한 ‘실제 위협’임을 시사한다. KEV에 등재되지 않은 것은 아직 대규모 캠페인이나 공개 익스

💥 영향 분석

  • 성공적인 악용 시 원격 코드 실행이 발생하여 공격자는 시스템 셸을 획득합니다.
  • 취득한 권한으로 권한 상승, 민감 데이터 유출, 시스템 파일 및 모델 파라미터 변조가 가능합니다.

🔗 관련 취약점·체이닝

  • 동일한 역직렬화 원리를 이용하는 CVE‑2021‑XYZ(예시)와 같이 pickle 기반 로드 시 임의 객체 삽입 공격이 가능함을 참고하십시오. (실제 번호는 확인되지 않음)

🔎 탐지

  • 로그 지표

    • application.log : torch.load 호출 직전/후에 기록되는 파일 경로(filepath)와 로드 성공 여부(status).
    • system.audit : 비정상적인 execve/bash 프로세스 생성 시점과 부모 프로세스(neMo_server) 정보.
  • SIEM 탐지 규칙 예시

    1. 역직렬화 파일 로드 감시
text
1source = "application.log"
2where message matches /torch\.load\((?<path>.+?)\)/
3 and path not in whitelist
4 and status == "success"
5alert "NeMo checkpoint load from untrusted path"
  1. 비정상적인 프로세스 생성
text
1source = "system.audit"
2where process_name == "python"
3 and command_line contains "torch.load"
4 and parent_process_name != "neMo_trusted_loader"
5alert "Suspicious torch.load execution"
  1. 파일 무결성 변경 감시 (정규식)
text
1source = "file.integrity"
2where path matches /.*\/(model|checkpoint)_.+\.pt$/
3 and change_type == "modified"
4 and user not in ["mlops", "root"]
5alert "Untrusted checkpoint modification detected"
  • 오탐 튜닝
    • 정상적인 모델 업데이트 파이프라인에서 발생하는 torch.load는 사전에 정의한 화이트리스트(whitelist)에 경로를 추가해 제외합니다.
    • CI/CD 자동 배포 시 생성되는 임시 파일은 process_name == "ci_runner" 조건을 추가하여 필터링합니다.

🛡️ 완화 방안

  • 즉시(긴급 차단)

    • 모든 NeMo 서비스에 대해 checkpoint 로드 경로를 제한하는 ACL을 적용하고, 신뢰된 디렉터리( /opt/nemo/models/) 외의 파일 접근을 차단합니다.
      • 구현 난이도: ★★☆☆☆ (방화벽/OS 수준 파일 권한 설정)
      • 운영 영향: 기존 파이프라인에서 비신뢰 경로를 사용한다면 즉시 오류 발생 가능 → 사전 점검 필요
      • 검증 방법: 차단된 경로에 대해 torch.load 호출 시 Permission denied 로그가 기록되는지 확인
  • 단기(완화)

    1. 입력 파일 무결성 검증 – 체크포인트 로드 전 SHA‑256 해시를 사전 정의된 값과 비교하도록 어플리케이션 레이어에 래퍼 함수를 삽입합니다.

      • 난이도: ★★★☆☆ (코드 수정 및 재배포)
      • 영향: 로드 지연 최소 0.1 s, 기존 모델 배포 시 해시 관리 필요
      • 검증: 정상 파일은 hash match 로그, 변조 파일은 hash mismatch → abort 로그 확인
    2. 역직렬화 비활성화 옵션 – NeMo가 제공하는 torch.load(..., map_location='cpu', pickle_module=SafeUnpickler)와 같은 안전 로더 사용을 강제합니다.

      • 난이도: ★★☆☆☆ (설정 파일 수정)
      • 영향: 일부 커스텀 레이어가 로드되지 않을 수 있음 → 테스트 필요
  • 근본(해결)

    • NVIDIA에서 제공하는 패치 버전(예: NeMo 2.1.0 이상) 적용 및 최신 릴리즈로 업그레이드합니다. 패키지 매니저(pip install --upgrade nemo_toolkit)를 이용해 배포 자동화 파이프라인에 반영하십시오.
      • 난이도: ★★★★☆ (전체 환경 재배포)
      • 운영 영향: 서비스 재시작 필요, 호환성 테스트 필수
      • 검증: 패치 적용 후 동일 로그 패턴이 발생하지 않는지 회귀 테스트 수행
  • 잔여 리스크

    • 패치 전까지는 위 즉시·단기 조치를 유지해야 하며, 화이트리스트 관리 오류 시 오탐·누락 가능성이 남습니다.
    • 완전한 방어를 위해 정기적인 패키지 버전 점검보안 빌드 파이프라인 적용을 권고합니다.
  • 인시던트 대응 플레이북 (핵심 순서)

    1. application.log·system.audit에 “NeMo checkpoint load from untrusted path” 알림 발생 여부 확인
    2. 해당 프로세스 PID, 부모 PID, 실행 사용자 식별 → 즉시 해당 세션 종료 (kill -9)
    3. 의심 파일 경로를 격리하고 해시 검증 수행
    4. 침해 범위(네트워크 연결, 추가 파일 생성) 조사 후 포렌식 로그 수집
    5. 즉시 차단 조치를 적용하고, 단기·근본 완화 단계로 전환

이와 같이 즉시 차단을 시행한 뒤, 단계별 완화를 진행하면 CVE-2026-24157에 대한 실효성 있는 방어가 가능합니다.

⚖️ 위험도 / 우선순위

  • 조치: scheduled (이번 주 내)
  • 근거: CVSS=7.8 · non-KEV · EPSS=0.00654 · exploit=hard · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…