В конце июня 2025 года была обнаружена и подтверждена критическая уязвимость в популярном сканере безопасности Picklescan, инструменте для анализа файлов Python Pickle. Уязвимость, получившая идентификаторы BDU:2025-15286 и CVE-2025-10156, связана с недостаточной обработкой исключительных состояний при разборе специально сформированных ZIP-архивов. По данным Банка данных угроз (BDU), эксплуатация этой уязвимости позволяет удаленному злоумышленнику обойти механизмы безопасности и выполнить произвольный код на целевой системе. Уязвимы все версии Picklescan до 0.0.30 включительно.
Детали уязвимости
Проблема была классифицирована как "Недостаточная обработка исключительных состояний" (CWE-755) и отнесена к уязвимостям архитектуры. Её критичность подчеркивается максимально высокими оценками по всем актуальным версиям системы CVSS. Базовый балл CVSS 3.1 составляет 9.8, что соответствует критическому уровню опасности. Атака не требует от злоумышленника ни специальных привилегий, ни взаимодействия с пользователем, поскольку базовый вектор эксплуатации оценивается как AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Другими словами, атака возможна из любой сети, с низкой сложностью реализации и приводит к полной компрометации конфиденциальности, целостности и доступности системы.
Picklescan является важным инструментом в экосистеме машинного обучения и анализа данных. Он предназначен для сканирования файлов формата Pickle, который широко используется в библиотеках Python, таких как PyTorch и scikit-learn, для сериализации и сохранения обученных моделей. Однако этот же формат представляет значительные риски безопасности, поскольку при десериализации может выполнять произвольный код. Следовательно, сканеры вроде Picklescan критически важны для выявления вредоносных артефактов перед загрузкой непроверенных моделей. Обнаруженная уязвимость подрывает саму основу доверия к такому защитному ПО, превращая его в потенциальный вектор для атаки.
Техническая суть уязвимости кроется в модуле "relaxed_zipfile.py", который используется сканером для обработки архивов. При возникновении исключения в определенных условиях во время чтения ZIP-файла, обработчик ошибок может некорректно освободить ресурсы или продолжить выполнение в небезопасном состоянии. Этот тип атаки, известный как "манипулирование сроками и состоянием", позволяет злоумышленнику спровоцировать сбой в работе программы и воспользоваться им для выполнения своего кода (payload). Фактически, отправляя специально созданный вредоносный ZIP-архив, содержащий опасный файл Pickle, злоумышленник может заставить сканер сам выполнить скрытый в нем код, вместо того чтобы его обнаружить.
Важно отметить, что, согласно BDU, эксплойт для данной уязвимости уже существует в открытом доступе. Это значительно повышает актуальность угрозы, сокращая временное окно для реагирования у администраторов и разработчиков. Наличие публичного эксплойта означает, что даже злоумышленники с невысоким уровнем технической подготовки могут попытаться воспользоваться этой уязвимостью для атак на инфраструктуры, связанные с машинным обучением. Например, подобная атака может быть нацелена на системы непрерывной интеграции, автоматически проверяющие вновь загружаемые модели, или на рабочие станции data scientist'ов.
Производитель ПО, Matthieu Maitre, оперативно отреагировал на сообщение об уязвимости. Проблема была устранена в версии Picklescan 0.0.31, выпущенной 29 июня 2025 года. Соответственно, основной и единственной рекомендуемой мерой защиты является немедленное обновление сканера до актуальной версии. Разработчик опубликовал все необходимые исправления в открытом доступе, включая коммит с изменениями в репозитории GitHub и официальный релиз. Эксперты по безопасности настоятельно рекомендуют всем пользователям и организациям, интегрировавшим Picklescan в свои рабочие процессы или конвейеры безопасности, проверить текущую версию инструмента и выполнить обновление безотлагательно.
Этот инцидент служит очередным напоминанием о сложности обеспечения безопасности даже для специализированных защитных инструментов. Интеграция сканеров безопасности в критические процессы требует тщательного управления их жизненным циклом, включая мониторинг новых уязвимостей и своевременное применение патчей. Более того, для критически важных операций стоит рассмотреть принцип глубокой эшелонированной обороны, не полагаясь на единственное средство проверки. В целом, обнаружение уязвимости в Picklescan подчеркивает растущее внимание киберпреступников к инфраструктуре искусственного интеллекта и машинного обучения, которая становится все более привлекательной целью для APT-групп (Advanced Persistent Threat, условно переводится как "целенаправленная устойчивая угроза") и других злоумышленников.
Ссылки
- https://bdu.fstec.ru/vul/2025-15286
- https://www.cve.org/CVERecord?id=CVE-2025-10156
- https://github.com/mmaitre314/picklescan/commit/28a7b4ef753466572bda3313737116eeb9b4e5c5
- https://github.com/mmaitre314/picklescan/releases/tag/v0.0.31
- https://huggingface.co/jinaai/jina-embeddings-v2-base-en/resolve/main/pytorch_model.bin?download=true
- https://huggingface.co/jinaai/jina-embeddings-v2-base-en/tree/main
- https://github.com/mmaitre314/picklescan/blob/v0.0.29/src/picklescan/relaxed_zipfile.py#L35
- https://github.com/mmaitre314/picklescan/security/advisories/GHSA-mjqp-26hc-grxg