🔍 CVE-2026-115878

7.8
CVSS Score
HIGH
2026-11-03
2026-11-03 23:17
✅ 완료

🇰🇷 한글 설명

Stanza는 스탠퍼드 NLP의 파이썬 라이브러리로, 여러 인간 언어의 토큰화, 문장 분할, 개체명 인식, 구문 분석을 수행합니다. 1.14.0부터 1.15.0 이전 버전에서는 공격자가 제공한 lemmatizer 체크포인트를 로드할 때 pos_dict가 gzip 압축된 pickle 바이트로 저장되어 제한 없는 pickle.loads로 역직렬화되므로 임의 코드가 실행될 수 있습니다. 해당 경로는 추론 이전 파이프라인 생성 시점에 호출자가 영향을 줄 수 있는 lemma_model_path를 통해 도달 가능합니다.

💡 쉬운 설명

자연어 처리 도구 Stanza는 모델 파일을 불러올 때 내부 데이터를 안전하지 않게 해석합니다. 악의적으로 만든 모델 파일을 사용하면 공격자가 시스템에서 원하는 명령을 실행할 수 있습니다.

🇺🇸 원문 (English)

Stanza is a Stanford NLP Python library for tokenization, sentence segmentation, NER, and parsing of many human languages. From 1.14.0 until 1.15.0, loading an attacker-supplied lemmatizer checkpoint can execute arbitrary code because stanza/models/lemma/trainer.py stores pos_dict as gzip-compressed pickle bytes and Trainer.load passes the decompressed stream to unrestricted pickle.loads. The outer torch.load call uses weights_only=True, but the nested bytes are treated as a primitive and are not inspected by that allowlist. The path is reachable during pipeline construction through a caller-influenced lemma_model_path, before inference begins. This issue is fixed in version 1.15.0.

📍 영향받는 시스템

Stanza 1.14.0 이상 1.15.0 미만을 사용하는 모든 Python 환경

⚔️ 공격 벡터

공격자가 조작된 lemmatizer 체크포인트 파일을 만들고 lemma_model_path를 통해 피해자가 이를 로드하도록 유도하여 임의 코드를 실행

🛡️ 대응 방법

Stanza를 1.15.0 이상으로 업그레이드하고 신뢰할 수 없는 모델 파일 로드를 피합니다.

🔧 검증 코드

출력된 Version 값이 1.15.0 미만이면 취약하므로 1.15.0 이상으로 업그레이드가 필요하며, 출력이 없으면 설치되지 않은 것입니다.

Shell / Script
pip show stanza 2>/dev/null | grep -i '^version'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Python