CVE-2026-44827 дозволяє зловмиснику виконувати довільний код під час завантаження моделі Hugging Face Diffusers, навіть якщо прапорець trust_remote_code вимкнено. Дослідники назвали цю вразливість «FaceHugger» і виявили, що вона спричинена станом гонитви (race condition) у двофазному процесі завантаження моделей бібліотеки. Будь-який конвеєр (pipeline), який завантажує моделі з хабу, може бути під загрозою.

Чому ця вразливість є важливою

Diffusers забезпечує роботу моделей text-to-image та інших дифузійних моделей. У липні 2026 року було зафіксовано 8,1 мільйона завантажень, тому незліченна кількість завдань CI/CD, образів контейнерів та корпоративних сервісів виведення (inference services) залежать від неї. Помилка обходить основний механізм безпеки (trust_remote_code), який розробники вмикають для блокування ненадійного Python-коду, що постачається разом із моделлю.

Як працює обхід захисту

  • Двофазне завантаження: Diffusers спочатку отримує конфігурацію моделі, а потім другий запит завантажує ваги моделі та будь-який пов'язаний код.
  • Стан гонитви (race condition): Перевірка безпеки, яка інспектує перший запит, не поширюється на другий.
  • Вставка корисного навантаження: Зловмисник, який контролює другий запит, впорскує шкідливий код, який бібліотека згодом виконує, повністю обходячи механізм перевірки довіри.

Оскільки перевірка стосується лише початкового запиту, вимкнення trust_remote_code створює хибне відчуття захищеності.

Негайні кроки для розробників

  1. Зафіксуйте версію Diffusers у requirements.txt або у вашому lock-файлі, щоб запобігти випадним оновленням до вразливої версії.
  2. Уникайте завантаження моделей «на льоту» у продуктивному середовищі. Завантажуйте моделі у надійне сховище артефактів (наприклад, внутрішній S3 bucket) і завантажуйте їх звідти.
  3. Проводьте аудит репозиторіїв моделей перед використанням. Перевіряйте, чи відповідають файли коду моделі очікуваним хеш-сумам, або чи походять вони з перевіреного джерела.
  4. Впровадьте контроль вихідного мережевого трафіку (egress controls), щоб агенти збірки та сервери виведення не могли отримати доступ до публічного хабу Hugging Face, якщо ви не дозволили це явно.
  5. Запускайте завантаження моделей у ізольованих контейнерах або пісочницях із мінімальними привілеями, щоб обмежити наслідки виконання стороннього коду.

Підсумок:

Помилка FaceHugger показує, що вимкнення trust_remote_code недостатньо. Поки ви не оновите Diffusers і не посилите свій конвеєр отримання моделей, кожне дистанційне завантаження моделі залишатиметься потенційною точкою входу для шкідливого коду.