🔍 CVE-2026-31223

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

🇰🇷 한글 설명

snorkel 라이브러리 v0.10.0 이하의 BaseLabeler.load() 메서드가 사용자 제공 파일을 검증 없이 pickle.load()로 역직렬화합니다. Python pickle은 역직렬화 중 임의 코드 실행 가능하므로, 악의적인 pickle 파일로 원격 공격자가 시스템을 완전히 장악할 수 있습니다.

💡 쉬운 설명

snorkel 라이브러리가 위험한 파일 형식을 안전하게 처리하지 않아, 해커가 특별히 조작한 파일을 열 때 컴퓨터를 완전히 제어할 수 있습니다. 시스템 데이터 탈취부터 악성 소프트웨어 설치까지 모든 것이 가능합니다.

🇺🇸 원문 (English)

The snorkel library thru v0.10.0 contains a critical insecure deserialization vulnerability (CWE-502) in the BaseLabeler.load() method of the BaseLabeler class. The method loads serialized labeler models using the unsafe pickle.load() function on user-supplied file paths without any validation or security controls. Python's pickle module is inherently dangerous for deserializing untrusted data, as it can execute arbitrary code during the deserialization process. A remote attacker can exploit this by providing a maliciously crafted pickle file, leading to arbitrary code execution on the victim's system when the file is loaded via the vulnerable method.

📍 영향받는 시스템

snorkel 라이브러리 v0.10.0 이하 모든 버전

⚔️ 공격 벡터

사용자가 BaseLabeler.load()로 악의적으로 조작된 pickle 파일을 로드할 때 자동 코드 실행

🛡️ 대응 방법

snorkel을 최신 버전으로 업그레이드하거나 pickle 대신 json/yaml 등 안전한 직렬화 형식 사용

🔧 검증 코드

Version이 0.10.0보다 높으면 패치됨, 0.10.0 이하 또는 미설치면 취약함

Shell / Script
pip show snorkel 2>/dev/null | grep Version || echo 'not installed'

📊 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