🇰🇷 한글 설명
Snorkel v0.10.0 이하의 Trainer.load() 메서드는 torch.load() 호출 시 weights_only=True 보안 옵션을 사용하지 않아 Pickle을 통한 임의의 Python 객체 역직렬화가 가능합니다. 공격자가 악의적으로 조작된 모델 파일을 제공하면 피해자가 이를 로드할 때 임의의 코드 실행이 발생합니다.
💡 쉬운 설명
Snorkel 라이브러리의 모델 파일 로딩 기능에 보안 결함이 있어 악의적인 파일을 열면 컴퓨터가 해킹될 수 있습니다. 신뢰할 수 없는 출처의 모델 파일을 절대 로드하면 안 됩니다.
🇺🇸 원문 (English)
The snorkel library thru v0.10.0 contains an insecure deserialization vulnerability (CWE-502) in the Trainer.load() method of the Trainer class. The method loads model checkpoint files using torch.load() without enabling the security-restrictive weights_only=True parameter. This default behavior allows the deserialization of arbitrary Python objects via the Pickle module. A remote attacker can exploit this by providing a maliciously crafted model file, leading to arbitrary code execution on the victim's system when the file is loaded via the vulnerable method.
📍 영향받는 시스템
snorkel library version <= 0.10.0
⚔️ 공격 벡터
Attacker provides maliciously crafted model checkpoint file that executes arbitrary code when loaded via vulnerable Trainer.load() method
🛡️ 대응 방법
Upgrade to snorkel > 0.10.0 with torch.load() using weights_only=True parameter or validate model files from trusted sources only
🔧 검증 코드
출력된 snorkel 버전이 0.10.0 초과이면 안전, 0.10.0 이하면 취약점 존재
python -c "import snorkel; print('Version:', snorkel.__version__)" 2>/dev/null || pip show snorkel | grep Version