В популярных библиотеках Python для искусственного интеллекта и машинного обучения, используемых в моделях Hugging Face с десятками миллионов загрузок, обнаружены уязвимости, позволяющие удаленным злоумышленникам внедрять вредоносный код в метаданные. Этот код затем автоматически исполняется при загрузке файла, содержащего зараженные метаданные.
Библиотеки с открытым исходным кодом — NeMo, Uni2TS и FlexTok — были разработаны компаниями Nvidia, Salesforce и Apple соответственно, в сотрудничестве с Лабораторией визуального интеллекта и обучения (EPFL VILAB) Швейцарской высшей технической школы Цюриха.
Все три библиотеки используют Hydra — еще одну библиотеку Python, поддерживаемую *Meta и широко применяемую в качестве инструмента управления конфигурацией для проектов машинного обучения. В частности, уязвимости связаны с функцией instantiate() в Hydra.
Команда Unit 42 компании Palo Alto Networks обнаружила эти уязвимости безопасности и уведомила разработчиков библиотек, которые с тех пор выпустили предупреждения о безопасности, исправления и, в двух случаях, идентификаторы CVE. Хотя аналитики по угрозам заявляют, что на данный момент им не известно о реальном использовании этих уязвимостей в атаках, «у злоумышленников имеется достаточно возможностей для их эксплуатации».
«Разработчикам часто приходится создавать собственные варианты передовых моделей с различными тонкими настройками и квантованием, зачастую на основе исследований, не связанных с каким-либо авторитетным учреждением», — написал во вторник в своем анализе инженер по исследованию вредоносного ПО из Unit 42 Кертис Кармони. «Злоумышленникам достаточно будет создать модификацию существующей популярной модели, обладающей реальным или заявленным преимуществом, а затем добавить вредоносные метаданные».
Кроме того, Hugging Face не делает содержимое метаданных таким же легкодоступным, как в случае с другими файлами, и не помечает файлы, использующие форматы safetensors или NeMo, как потенциально небезопасные.
Модели на Hugging Face используют более 100 различных библиотек Python, и почти 50 из них задействуют Hydra. «Хотя сами по себе эти форматы могут быть безопасными, существует очень большая поверхность для атак в коде, который их обрабатывает», — отметил Кармони.
Издание The Register обратилось за комментариями в Hugging Face, а также к разработчикам библиотек (*Meta, Nvidia, Salesforce и Apple), но получило только один ответ. Он поступил от представителя Salesforce, который сообщил: «Мы проактивно устранили проблему в июле 2025 года и не имеем свидетельств несанкционированного доступа к данным клиентов».
Мы обновим эту статью, если получим ответы от других компаний.
Hydra
Как упоминалось ранее, уязвимости связаны со способом, которым NeMo, Uni2TS и FlexTok используют функцию hydra.utils.instantiate() для загрузки конфигураций из метаданных модели, что допускает удаленное выполнение кода (RCE).
Создатели или разработчики этих библиотек, по всей видимости, упустили из виду тот факт, что instantiate() принимает не только имя класса для инстанцирования. Она также принимает имя любого вызываемого объекта (callable) и передает ему предоставленные аргументы.
Используя это, злоумышленник может легче добиться RCE с помощью встроенных функций Python, таких как eval() и os.system().
*Meta с тех пор обновила документацию Hydra, добавив предупреждение о возможности RCE при использовании instantiate(), и настоятельно рекомендует пользователям добавить механизм «черного списка», который сравнивает значение _target_ с перечнем опасных функций перед ее вызовом. Однако на данный момент механизм «черного списка» не был представлен в релизе Hydra.
Ниже представлен более подробный обзор трех библиотек ИИ/МО, использующих функцию instantiate() в Hydra, и связанных с ними уязвимостей.
NeMo
NeMo — это фреймворк на базе PyTorch, созданный Nvidia в 2019 году. Его расширения файлов .nemo и .qnemo — TAR-архивы, содержащие файл model_config.yaml — хранят метаданные модели вместе с файлом .pt или .safetensors соответственно.
Проблема заключается в том, что метаданные не проходят санитарную проверку до того, как эти файлы NeMo совершают вызов API к hydra.utils.instantiate(). Это позволяет злоумышленнику загрузить файлы .nemo с вредоносно сформированными метаданными, запустить уязвимость и добиться RCE или изменить данные.
Nvidia выпустила CVE-2025-23304 для отслеживания этой критической ошибки и выпустила исправление в версии NeMo 2.3.2.
NeMo также интегрируется с Hugging Face, и злоумышленник может использовать тот же путь в коде для эксплуатации этой уязвимости после загрузки модели.
По данным Unit 42, более 700 моделей на Hugging Face от различных разработчиков представлены в файловом формате NeMo.
Uni2TS
Uni2TS — это библиотека PyTorch, созданная Salesforce и используемая в ее базовой модели Morai для анализа временных рядов, а также в наборе моделей, опубликованных на Hugging Face.
Эта библиотека работает исключительно с файлами .safetensors, созданными Hugging Face как безопасный формат для хранения тензоров, в отличие от pickle, который допускает произвольное выполнение кода в процессе загрузки.
Модели Salesforce, использующие эти библиотеки, имеют сотни тысяч загрузок на Hugging Face, и другие пользователи также опубликовали несколько адаптаций этих моделей.
Hugging Face также предоставляет интерфейс PyTorchModelHubMixin для создания пользовательских классов моделей, которые могут быть интегрированы с остальной частью фреймворка.
Этот интерфейс предоставляет специальный механизм для регистрации кодовых функций, и — вы уже догадались — библиотека uni2TS использует этот механизм для декодирования конфигурации определенного аргумента через вызов hydra.utils.instantiate().
31 июля Salesforce выпустила CVE-2026-22584 и внедрила исправление.
FlexTok
В начале прошлого года Apple и EPFL VILAB создали FlexTok — фреймворк на основе Python, который позволяет моделям ИИ/МО обрабатывать изображения.
Как и uni2TS, FlexTok использует только файлы safetensors, расширяет PyTorchModelHubMixin и может загружать конфигурацию и метаданные из файла .safetensors. После декодирования метаданных FlexTok передает их в hydra.utils.instantiate(), что инициирует уязвимость.
«По состоянию на январь 2026 года ни одна модель на Hugging Face, похоже, не использует библиотеку ml-flextok, кроме моделей, опубликованных EPFL VILAB, которые в общей сложности имеют десятки тысяч загрузок», — написал Кармони.
Apple и EPFL VILAB устранили эти проблемы безопасности, используя YAML для разбора своих конфигураций. Разработчики также добавили список разрешенных классов, которые могут вызывать функцию instantiate() в Hydra, и обновили документацию, указав, что загружать следует только модели из доверенных источников. ®
*Facebook, *Instagram и *WhatsApp принадлежат компании Meta Platforms Inc., деятельность которой признана экстремистской и запрещена на территории Российской Федерации.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Jessica Lyons




