🇰🇷 한글 설명
datamodel-code-generator 0.14.1부터 0.60.2 버전에서 --extra-template-data의 comment 필드 내 줄바꿈 문자가 적절히 처리되지 않는 취약점이 발견되었습니다. 공격자가 제어하는 주석 값이 생성된 Python 모델에 코드를 주입할 수 있으며, 해당 모델이 임포트될 때 악성 코드가 실행될 수 있습니다.
💡 쉬운 설명
데이터 모델을 자동으로 만들어주는 도구의 주석 처리 기능에 결함이 있습니다. 공격자가 주석 안에 몰래 명령어를 숨겨두면, 프로그램이 실행될 때 그 명령어가 자동으로 실행될 수 있습니다.
🇺🇸 원문 (English)
datamodel-code-generator generates Python data models from schema definitions. From 0.14.1 until 0.60.2, the --extra-template-data comment field is rendered into Python comments in src/datamodel_code_generator/model/template/TypeAliasAnnotation.jinja2, src/datamodel_code_generator/model/template/TypedDict.jinja2, src/datamodel_code_generator/model/template/dataclass.jinja2, src/datamodel_code_generator/model/template/msgspec.Struct.jinja2, src/datamodel_code_generator/model/template/pydantic/BaseModel.jinja2, and src/datamodel_code_generator/model/template/pydantic_v2/BaseModel.jinja2 without neutralizing carriage returns in Python # comments, allowing an attacker-controlled comment value to inject Python code into generated models that runs when imported. This issue is fixed in version 0.60.2.
📍 영향받는 시스템
datamodel-code-generator versions 0.14.1 to 0.60.2
⚔️ 공격 벡터
악의적으로 조작된 주석 값이 포함된 스키마를 사용하여 Python 코드가 주입된 모델 파일을 생성함
🛡️ 대응 방법
datamodel-code-generator를 0.60.2 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 0.60.2 미만(0.14.1 이상)이면 취약한 상태입니다.
pip show datamodel-code-generator | grep Version