
CVE-2025-32434에 대한 개념 증명 익스플로잇, PyTorch의 torch.load() 함수에서 메모리 매핑 파일 쓰기를 통해 weights_only=True 보호를 우회하는 중대한 RCE 취약점입니다.
CVE-2025-32434는 딥러닝 및 신경망에 널리 사용되는 Python 라이브러리인 PyTorch의 치명적인 원격 코드 실행(RCE) 취약점입니다.
이 취약점은 안전한 것으로 알려진 weights_only=True 매개변수를 사용하더라도 torch.load() 함수에 존재합니다. weights_only=True 옵션은 모델 파라미터만 로드하도록 제한하여 코드 실행을 방지하기 위해 설계되었습니다. 그러나 연구자들은 이 보호를 우회하는 방법을 발견했습니다.
| 상태 | 버전 |
|---|---|
| 취약 | PyTorch 2.5.1 및 모든 이전 버전 |
| 수정됨 | PyTorch 2.6.0 이상 |
인증되지 않은 공격자가 피해자가 로드할 때 임의 코드를 실행하는 악성 모델 파일을 생성할 수 있습니다. 이 공격은 사용자 상호작용이 필요 없으며 시스템 전체가 손상될 수 있습니다. 이 취약점은 PyTorch가 Python의 pickle 직렬화를 사용하는 방식을 악용하여 공격자가 모델 파일에 악성 코드를 포함할 수 있게 합니다.
이 취약점은 많은 개발자가 보안 조치로 weights_only=True에 의존하기 때문에 특히 위험합니다. 그러나 이 취약점은 "안전한" 옵션조차 충분하지 않음을 증명합니다.
제공된 full.py 스크립트는 로드될 때 파일 시스템에 쓰는 악성 PyTorch 모델을 생성하는 방법을 보여줍니다.
torch.from_file()을 사용하여 대상 cron 파일을 가리키는 메모리 매핑 텐서를 생성합니다.# Memory-mapped file writing
t = torch.from_file("/etc/cron.d/rev",
shared=True,
size=len(asciis),
dtype=torch.uint8)
msg = torch.tensor(asciis, dtype=torch.uint8)
t.copy_(msg) # Writes to /etc/cron.d/rev
이 가이드는 CVE-2025-32434 개념 증명(PoC) 스크립트를 사용하는 방법에 대한 단계별 지침을 제공합니다.
시작하기 전에 다음이 있는지 확인하세요:
# Install PyTorch (vulnerable version for testing)
pip install torch==2.5.1
pip install torch