🔍 CVE-2026-108377

8.8
CVSS Score
HIGH
2026-10-13
2026-10-16 16:00
✅ 완료

🇰🇷 한글 설명

dataclasses-avroschema 0.62.3부터 0.70.5 버전에서 ClassRepresentation.render_metaclass 함수가 생성된 Python 소스 코드 내의 Meta.schema_name 필드에 입력된 값을 적절히 이스케이프 처리하지 않는 취약점이 발견되었습니다. 공격자가 조작된 Avro 레코드 이름을 사용하면 문자열 리터럴을 종료하고 생성된 클래스 본문에 임의의 코드를 주입할 수 있으며, 이는 해당 모듈이 임포트될 때 실행됩니다.

💡 쉬운 설명

데이터 형식을 변환해주는 프로그램이 코드를 자동으로 만들 때, 입력된 이름을 검사하지 않고 그대로 코드에 집어넣는 문제입니다. 이를 통해 해커가 악성 명령어를 숨겨두면 프로그램이 실행될 때 해커의 코드가 몰래 작동할 수 있습니다.

🇺🇸 원문 (English)

dataclasses-avroschema generates Avro schemas from Python dataclasses, Pydantic models, and Faust Records and generates Python code from Avro schemas. From version 0.62.3 through 0.70.5, ClassRepresentation.render_metaclass inserts a schema-controlled Avro record name into the quoted Meta.schema_name field of generated Python source without escaping it. A crafted name can terminate the string literal and inject statements into the generated class body, which execute when the generated module is imported. Version 0.70.6 fixes the vulnerability by escaping schema values rendered into generated string literals.

📍 영향받는 시스템

dataclasses-avroschema version 0.62.3 ~ 0.70.5

⚔️ 공격 벡터

조작된 Avro 레코드 이름을 통해 생성된 Python 소스 코드에 임의의 명령어를 주입하는 코드 주입(Code Injection) 공격

🛡️ 대응 방법

dataclasses-avroschema를 0.70.6 이상의 버전으로 업데이트하십시오.

🔧 검증 코드

출력된 버전이 0.70.5 이하이면 취약한 상태이며, 0.70.6 이상이면 안전합니다.

Shell / Script
pip show dataclasses-avroschema 2>/dev/null | 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