🇰🇷 한글 설명
dataclasses-avroschema 0.38.0부터 0.70.5 버전 사이에서 enum 필드 기본값을 처리할 때 식별자 유효성을 검증하지 않는 취약점이 발견되었습니다. 공격자가 스키마를 조작하여 개행 문자나 특수 문자를 주입할 경우, 생성된 파이썬 모듈에 임의의 코드를 삽입하거나 네임스페이스를 수정하여 모듈 로딩을 방해할 수 있습니다.
💡 쉬운 설명
데이터 형식을 만들어주는 프로그램이 입력값을 제대로 검사하지 않아, 나쁜 코드가 몰래 끼어들 수 있는 문제입니다. 이를 통해 프로그램의 동작을 방해하거나 원치 않는 명령을 실행하게 만들 수 있습니다.
🇺🇸 원문 (English)
dataclasses-avroschema generates Avro schemas from Python dataclasses, Pydantic models, and Faust Records and generates Python code from Avro schemas. From version 0.38.0 through 0.70.5, FieldRepresentation.get_field_default renders a schema-controlled enum field default as an enum member reference after applying case conversion but without validating it as an identifier. Newlines, operators, and punctuation can escape the intended reference and inject constrained statements into the generated module, allowing namespace modification or preventing the module from loading. Version 0.70.6 fixes the vulnerability by validating enum defaults as names.
📍 영향받는 시스템
dataclasses-avroschema versions 0.38.0 through 0.70.5
⚔️ 공격 벡터
조작된 Avro 스키마를 제공하여 생성되는 파이썬 코드에 악성 구문을 주입하는 방식
🛡️ 대응 방법
dataclasses-avroschema를 취약점이 해결된 버전인 0.70.6 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 0.70.5 이하이면 취약한 상태이며, 0.70.6 이상이면 안전합니다.
pip show dataclasses-avroschema | grep Version