🇰🇷 한글 설명
dataclasses-avroschema 라이브러리에서 Avro 스키마를 기반으로 Python 코드를 생성할 때 발생하는 코드 주입 취약점입니다. 0.38.0부터 0.70.5 버전 사이에서 Enum 심볼을 처리할 때 따옴표를 적절히 이스케이프하지 않아, 공격자가 임의의 Python 코드를 실행할 수 있습니다.
💡 쉬운 설명
데이터 형식을 만들어주는 도구가 잘못된 데이터를 처리하면서 공격자가 심어놓은 악성 명령어를 실행하게 되는 문제입니다. 생성된 파일을 불러오기만 해도 해커의 코드가 내 컴퓨터에서 실행될 수 있습니다.
🇺🇸 원문 (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, EnumRepresentation.render_symbols concatenates each schema-controlled enum symbol between double quotes in a generated enum assignment. When generator classes are used directly, a quote can terminate the string literal and inject arbitrary Python code into the enum class body, which executes when the generated module is imported. Version 0.70.6 fixes the vulnerability by escaping enum symbol values before rendering them.
📍 영향받는 시스템
dataclasses-avroschema version 0.38.0 through 0.70.5
⚔️ 공격 벡터
스키마 제어 권한을 가진 공격자가 특수하게 조작된 Enum 심볼 값을 입력하여 코드 주입 공격 수행
🛡️ 대응 방법
dataclasses-avroschema 라이브러리를 0.70.6 이상의 최신 버전으로 업데이트
🔧 검증 코드
출력된 버전이 0.70.5 이하이면 취약한 상태이며, 0.70.6 이상이면 안전합니다.
pip show dataclasses-avroschema | grep Version