🔍 CVE-2026-31222

8.8
CVSS Score
HIGH
2026-05-12
2026-10-19 22:10
✅ 완료

🇰🇷 한글 설명

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 이하면 취약점 존재

Shell / Script
python -c "import snorkel; print('Version:', snorkel.__version__)" 2>/dev/null || pip show snorkel | grep Version

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Python