🇰🇷 한글 설명
datamodel-code-generator 0.63.0 미만 버전에서 DNS 리바인딩을 통해 내부 네트워크 접근 제한을 우회할 수 있는 취약점이 발견되었습니다. URL 호스트 검증 후 httpx가 호스트를 다시 해석하는 과정에서 발생하는 문제로, allow_private_network=False 설정이 무력화될 수 있습니다.
💡 쉬운 설명
프로그램이 안전한 주소인지 확인한 직후, 공격자가 주소를 몰래 바꿔치기하여 내부 네트워크에 접속할 수 있는 보안 구멍이 있습니다. 이를 통해 외부에서 접근할 수 없는 내부 서버에 접근할 위험이 있습니다.
🇺🇸 원문 (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. Prior to 0.63.0, datamodel-code-generator validates a URL host once in src/datamodel_code_generator/http.py through get_body, _validate_url_for_fetch, and _get_ips_from_host, but then lets httpx resolve the host again for the connection, allowing DNS rebinding to bypass allow_private_network=False and reach internal services. This issue is fixed in version 0.63.0.
📍 영향받는 시스템
datamodel-code-generator versions prior to 0.63.0
⚔️ 공격 벡터
DNS Rebinding을 이용한 내부 네트워크 서비스 접근 및 보안 설정 우회
🛡️ 대응 방법
datamodel-code-generator를 0.63.0 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 0.63.0 미만이면 취약한 상태이며, 0.63.0 이상이면 안전합니다.
pip show datamodel-code-generator | grep Version