CVE-2026-108382: критическая инъекция кода в dataclasses-avroschema
В библиотеке dataclasses-avroschema обнаружена уязвимость CVE-2026-108382 с оценкой CVSS 8.8, позволяющая внедрить произвольный Python-код через символы enum в генерируемых схемах Avro. Проблема затрагивает версии с 0.38.0 по 0.70.5 и опасна для всех, кто генерирует код из недоверенных Avro-схем. Исправление доступно в версии 0.70.6.
Подробности
Уязвимость CVE-2026-108382 получила оценку CVSS 8.8 (HIGH). Она присутствует в библиотеке marcosschroh dataclasses-avroschema начиная с версии 0.38.0 и вплоть до 0.70.5 включительно. Проблема кроется в методе EnumRepresentation.render_symbols. При генерации кода он помещает каждое значение символа enum, управляемое схемой, между двойными кавычками в инструкции присваивания enum. Поскольку значения не экранируются, кавычка внутри символа может преждевременно закрыть строковый литерал и позволить внедрить произвольный Python-код прямо в тело класса enum. Ключевая особенность эксплуатации: уязвимость срабатывает при прямом использовании классов-генераторов. Внедрённый код выполняется в момент импорта сгенерированного модуля, что даёт атакующему возможность исполнения произвольного кода в контексте процесса, импортирующего модуль. Это делает вектор особенно опасным в сценариях, где Avro-схемы поступают из внешних или недоверенных источников.Что делать
Основная и наиболее надёжная рекомендация — обновить библиотеку до версии 0.70.6. В этом релизе разработчики устранили уязвимость, добавив экранирование значений символов enum перед их отрисовкой в генерируемом коде. Если немедленное обновление невозможно, следует применить компенсирующие меры: — не генерировать Python-код из Avro-схем, полученных из недоверенных источников; — ограничить доступ к процессам, выполняющим генерацию и импорт кода; — проверять и валидировать символы enum до передачи их в генератор; — по возможности изолировать генерацию кода в песочнице. Также стоит проверить журналы на предмет подозрительных импортов сгенерированных модулей, если есть основания полагать, что недоверенные схемы уже обрабатывались.Итог
CVE-2026-108382 — серьёзная уязвимость инъекции кода, способная привести к выполнению произвольного Python-кода при импорте сгенерированного модуля. Учитывая высокую оценку CVSS 8.8 и широкое распространение библиотеки, обновление до версии 0.70.6 следует выполнить в приоритетном порядке.Источник: CVE Project (cvelistV5)
