피드로 돌아가기
Your PyTorch Model File Can Execute Arbitrary Code — Here's How I Built a Scanner to Detect It
Dev.toDev.to
Security

Pickle Opcode 분석 기반 PyTorch RCE 탐지 스캐너 구현

Your PyTorch Model File Can Execute Arbitrary Code — Here's How I Built a Scanner to Detect It

Pooja Kiran2026년 5월 19일2intermediate

Context

PyTorch의 .pt 파일이 사용하는 Pickle 포맷의 내장 코드 실행 메커니즘으로 인한 원격 코드 실행(RCE) 취약점 존재. 신뢰할 수 없는 모델 파일을 load 시 별도의 경고 없이 임의의 Python 코드가 실행되는 보안 허점 분석.

Technical Solution

  • pickletools 모듈을 통한 Pickle Bytecode의 비실행적 분해(Disassembly) 구조 설계
  • STACK_GLOBAL 및 REDUCE Opcode의 호출 패턴을 추적하여 함수 실행 흐름 식별
  • nt.system, posix.system 등 OS 플랫폼별 가변적인 모듈 명칭을 포함한 블랙리스트 기반 패턴 매칭 적용
  • Pickle Protocol 0~5 버전을 모두 지원하여 프로토콜 버전별 스택 적재 방식의 차이점 해소
  • 단순 파일 분석을 넘어 모듈명과 함수명을 결합한 위험 수준(Risk Level) 판별 로직 구현

1. 외부 모델 로드 시 pickle.loads() 대신 SafeTensors 포맷 우선 채택

2. 모델 배포 파이프라인 내 Ed25519 기반의 SHA-256 암호화 서명 검증 단계 추가

3. 모델 파일 로드 전 Opcode 수준의 정적 분석 스캔 프로세스 도입

원문 읽기