CVE-2026-44827 позволяет злоумышленнику выполнять произвольный код при загрузке модели Hugging Face Diffusers, даже если флаг trust_remote_code отключен. Исследователи назвали эту уязвимость «FaceHugger» и связали её с состоянием гонки (race condition) в двухфазном процессе загрузки моделей библиотеки. Любой конвейер, подтягивающий модели из хаба, может быть подвержен этой угрозе.
Почему эта уязвимость важна
Diffusers лежит в основе моделей text-to-image и других диффузионных моделей. В июле 2026 года было зафиксировано 8,1 миллиона загрузок, поэтому от этой библиотеки зависят бесчисленные CI/CD-задачи, образы контейнеров и корпоративные сервисы инференса. Баг обходит основной механизм безопасности (trust_remote_code), который разработчики включают для блокировки недоверенного Python-кода, поставляемого вместе с моделью.
Как работает обход защиты
- Двухфазная загрузка: Diffusers сначала получает конфигурацию модели, а затем вторым запросом подтягивает веса модели и любой связанный с ней код.
- Состояние гонки: Проверка безопасности, которая анализирует первый запрос, не распространяется на второй.
- Внедрение полезной нагрузки: Злоумышленник, контролирующий второй запрос, внедряет вредоносный код, который библиотека затем выполняет, полностью обходя механизм проверки доверия.
Поскольку проверка касается только первоначального запроса, отключение trust_remote_code создает ложное чувство безопасности.
Немедленные шаги для разработчиков
- Зафиксируйте версию Diffusers в
requirements.txtили вашем lock-файле, чтобы предотвратить случайное обновление до уязвимой версии. - Избегайте загрузки моделей «на лету» в рабочей среде (production). Скачивайте модели в доверенное хранилище артефактов (например, во внутренний S3-бакет) и загружайте их оттуда.
- Проверяйте репозитории моделей перед использованием. Убедитесь, что файлы кода модели соответствуют ожидаемым хеш-суммам или получены из проверенного источника.
- Настройте контроль исходящего сетевого трафика, чтобы агенты сборки и серверы инференса не могли обращаться к публичному хабу Hugging Face без вашего разрешения.
- Запускайте загрузку моделей внутри изолированных контейнеров или песочниц с минимальными привилегиями, чтобы ограничить последствия выполнения стороннего кода.
Итог:
Баг FaceHugger показывает, что отключения trust_remote_code недостаточно. Пока вы не обновите Diffusers и не ужесточите конвейер загрузки моделей, каждое скачивание удаленной модели остается потенциальной точкой входа для вредоносного кода.
