🇰🇷 한글 설명
datamodel-code-generator 0.52.1부터 0.60.2 버전 사이에서 --extra-template-data 옵션을 통해 입력된 검증기가 안전하지 않은 방식으로 @field_validator 데코레이터에 삽입됩니다. 이로 인해 생성된 Pydantic v2 모델을 임포트할 때 임의의 파이썬 코드가 실행될 수 있는 취약점이 존재합니다.
💡 쉬운 설명
데이터 모델을 자동으로 만들어주는 도구가 사용자의 입력을 검증 코드로 변환할 때 보안 검사를 제대로 하지 않습니다. 이 과정에서 악성 코드가 포함되면, 만들어진 파일을 불러오는 것만으로도 해커의 명령이 실행될 수 있습니다.
🇺🇸 원문 (English)
datamodel-code-generator generates Pydantic v2 models, dataclasses, TypedDict, and msgspec.Struct from OpenAPI, JSON Schema, GraphQL, Avro, Protobuf, and raw JSON, YAML, or CSV. From 0.52.1 until 0.60.2, datamodel-code-generator interpolates validators from --extra-template-data in src/datamodel_code_generator/model/pydantic_v2/base_model.py through _process_validators into @field_validator decorators without safe validation, allowing Python code execution when the generated Pydantic v2 model is imported. This issue is fixed in version 0.60.2.
📍 영향받는 시스템
datamodel-code-generator 0.52.1 ~ 0.60.2
⚔️ 공격 벡터
악의적으로 조작된 --extra-template-data를 사용하여 생성된 모델 파일을 시스템에서 임포트함
🛡️ 대응 방법
datamodel-code-generator를 0.60.2 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 0.60.2 미만(0.52.1 이상)이면 취약한 상태입니다.
pip show datamodel-code-generator | grep Version