🇰🇷 한글 설명
datamodel-code-generator 0.9.1 버전부터 0.61.0 버전 사이에서 공격자가 제어하는 JSON Schema의 $ref HTTP/HTTPS URL을 조용히 참조하는 취약점이 발견되었습니다. 이로 인해 --allow-remote-refs 옵션이 차단 대신 경고만 수행할 경우 서버 측 요청 위조(SSRF) 공격이 가능해집니다.
💡 쉬운 설명
프로그램이 외부의 잘못된 주소를 자동으로 읽어들이는 과정에서, 해커가 지정한 가짜 주소로 서버가 접속하게 만드는 보안 결함입니다. 이를 통해 해커는 내부 네트워크에 접근하거나 정보를 빼낼 수 있습니다.
🇺🇸 원문 (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.9.1 until 0.61.0, datamodel-code-generator silently dereferences attacker-controlled JSON Schema $ref HTTP or HTTPS URLs in src/datamodel_code_generator/parser/jsonschema.py through _get_ref_body, and the --allow-remote-refs gate can warn instead of blocking, allowing server-side request forgery through src/datamodel_code_generator/http.py. This issue is fixed in version 0.61.0.
📍 영향받는 시스템
datamodel-code-generator version 0.9.1 ~ 0.61.0
⚔️ 공격 벡터
공격자가 조작된 $ref URL이 포함된 JSON Schema를 제공하여 서버가 외부 또는 내부 네트워크로 요청을 보내도록 유도
🛡️ 대응 방법
datamodel-code-generator를 0.61.0 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 0.61.0 미만(예: 0.50.0)이면 취약한 상태이며, 0.61.0 이상이면 안전합니다.
pip show datamodel-code-generator | grep Version