# Файли моделі Hugging Face можуть запускати прихований код

Published: 2026-10-12

Шкідливі пакети моделей можуть виконувати код під час небезпечного завантаження. Три задокументовані приклади пояснюють реверсивні оболонки Pickle, поведінку сканера пошкоджених файлів та продемонстровану дослідженнями плутанину назв моделей, з чіткими обмеженнями щодо заяв про викрадення облікових даних.

Canonical: https://thedailydiff.dev/uk/video/2026-10-12-huggingface-model-malware/

## Що охоплює це відео

- Чисельні ваги моделі, виконувана серіалізація та користувацький код репозиторію — це різні речі.
- JFrog і ReversingLabs задокументували корисне навантаження реверсивних оболонок; їхні обрані звіти не підтверджують крадіжки облікових даних у названих жертв.
- Checkmarx Model Confusion був демонстрацією дослідження, яка вимагала відповідної віддаленої моделі та небезпечного завантаження.
- Віддавайте перевагу safetensors і виправленим завантажувачам, перевіряйте та закріплюйте користувацький код, а також ізолюйте незнайомі пакети від особистих секретів та зайвого мережевого доступу.

## Розділи

- 0:00 Як завантаження моделі може запросити гостя?
- 0:35 Як завантажувач виконує інструкції пакета?
- 1:09 Які секрети доступні для процесу?
- 1:38 Чому відсутній локальний шлях може стати віддаленою моделлю?
- 1:55 Як пошкоджені пакети обійшли старий сканер?
- 2:44 Що утримує ключ поза досяжністю гостя?
- 3:12 Чому я б поставив позначку НЕОБХІДНИЙ ОГЛЯД?

## Перекладена стенограма

Перекладено з оригінальної англійської розповіді. Доступне аудіо та субтитри контролюються YouTube.

### Як завантаження моделі може запросити гостя?

0:00 Файл моделі – це лише числа на диску. Завантаження одного шкідливого пакета Hugging Face відкрило віддалену оболонку, що є амбітною інтерпретацією локального ШІ. Як завантаження перетворюється на виконання? До яких секретів він може дістатися? Що насправді його зупиняє? І пам'ятайте про одну головоломку. Модель може не завантажитися після того, як небезпечна частина вже відбулася.

0:18 Це The Daily Diff, за лаштунками. Hugging Face — це платформа для обміну моделями машинного навчання, наборами даних та програмами. Ваги моделі — це вивчені числа. Репозиторій також може містити конфігурацію та код Python. Небезпека тут полягає у виконуваному пакуванні, яке потрапляє на ваш комп'ютер, коли ви його завантажуєте. Pickle зберігає об'єкти Python з інструкціями для їх відтворення.

### Як завантажувач виконує інструкції пакета?

0:37 Небезпечний завантажувач може слідувати цим інструкціям і викликати функції під час розпакування. Завантаження байтів розміщує посилку на вашому диску. Десеріалізація відкриває її. Десь формат файлу був підвищений до неоплачуваного системного адміністратора. JFrog повідомив про Goober Two у лютому 2024 року. Його корисне навантаження Pickle відкрило реверсивну оболонку, що підключилася назовні, щоб запропонувати віддалений доступ до команд. Репозиторій було видалено. JFrog також знайшов підказки, що свідчать про причетність дослідників,

1:02 тому атрибуція невизначена. Небажаний гість був задокументований. Крадіжка облікових даних у фактичних жертв не була встановлена.

### Які секрети доступні для процесу?

1:09 Код, що працює як ваш користувач, може читати все, що може читати цей процес. Підключений хмарний ключ або доступний токен стає можливою ціллю. Відправка його також потребує працюючого мережевого маршруту. Лише числові ваги не мають магічних повноважень облікових даних. Ваші дозволи надають цікаву частину картки моделі. Є ще одні двері. Деякі моделі просять вас довіряти віддаленому коду, що дозволяє Python з репозиторію. Файли безпечних тензорів можуть знаходитися поруч з цим кодом.

1:32 Перевірка формату ваг охоплює один вхід, тоді як код репозиторію все ще чекає, поки ви передасте йому значок відвідувача.

### Чому відсутній локальний шлях може стати віддаленою моделлю?

1:38 Checkmarx продемонстрував Model Confusion. Відсутній локальний шлях моделі може розв'язатися до публічного репозиторію з відповідною назвою. Поєднайте це з віддаленим кодом увімкненим, і неправильний пакет може бути виконаний. Це була дослідницька демонстрація із зразком неназваної компанії, виправлена протягом дня. Відсутня папка отримала господаря. ReversingLabs повідомив про два зразки в лютому 2025 року,

### Як пошкоджені пакети обійшли старий сканер?

1:58 назвавши техніку nullify AI. Обидва містили реверсивні оболонки. Їхнє пакування 7-zip блокувало звичайне завантаження PyTorch, тому цей шлях вимагав розпакування та небезпечної десеріалізації. Пошкоджені потоки Pickle також виявили сліпу пляму сканера. Невдале сканування заслуговує на розслідування, перш ніж хтось відкриє посилку. У нешкідливому тесті дослідників інструкції записали файл до того, як завантажувач

2:18 дістався до пошкодженої частини та викликав помилку. Уявіть, що ви відкриваєте посилку, випускаєте єнота, а потім помічаєте, що транспортна етикетка недійсна. Повідомлення про помилку надходить з відмінною граматикою та жахливим часом. Hugging Face видалив згадані зразки протягом двадцяти чотирьох годин і змінив сканер. Це конкретне відкриття спонукало до виправлення. Перевірка безпеки є корисним доказом, а трактування кожної помилки сканера як чистого висновку про здоров'я залишається напрочуд щедрою інтерпретацією невдачі.

2:43 Віддавайте перевагу безпечним тензорам та поточним виправленим завантажувачам.

### Що утримує ключ поза досяжністю гостя?

2:46 PyTorch звузив свій завантажувач за замовчуванням, починаючи з версії 2.6. Перевірте користувацький код і закріпіть переглянуту ревізію. Запускайте незнайомі пакети ізольовано, без особистих ключів, з обмеженим доступом до мережі. Контейнер, наповнений монтованими обліковими даними, — це подарунковий кошик з просторами імен. Та перша головоломка має відповідь. Помилка завантаження повідомляє, де виконання зупинилося. Раніші інструкції, можливо, вже були виконані.

3:08 Тримайте секрети поза його досяжністю, перш ніж відкривати посилку. Висновок, за лаштунками.

### Чому я б поставив позначку НЕОБХІДНИЙ ОГЛЯД?

3:16 завантажувач. Безкоштовне завантаження має поставлятися з моделлю, а список гостей повинен залишатися моїм рішенням. Якщо ви волієте це читати, а не чути від мене, то "diff" надходить у вашу поштову скриньку щоранку, безкоштовно на the daily diff dot dev, посилання нижче. І це "diff" на сьогодні. Я Ніко з Axrisi. Об'єднуйте відповідально.

## Джерела

- [Data Scientists Targeted by Malicious Hugging Face ML Models with Silent Backdoor](https://jfrog.com/blog/data-scientists-targeted-by-malicious-hugging-face-ml-models-with-silent-backdoor/) — JFrog
- [Malicious ML models discovered on Hugging Face platform](https://www.reversinglabs.com/blog/rl-identifies-malware-ml-model-hosted-on-hugging-face) — ReversingLabs
- [AI Model Confusion: An LLM/AI Model Supply Chain Attack](https://checkmarx.com/zero-post/hugs-from-strangers-ai-model-confusion-supply-chain-attack/) — Checkmarx Zero
- [Pickle Scanning](https://huggingface.co/docs/hub/en/security-pickle) — Hugging Face
- [Safetensors](https://huggingface.co/docs/safetensors/en/index) — Hugging Face
- [Loading custom models](https://huggingface.co/docs/transformers/en/models) — Hugging Face
- [Serialization semantics](https://docs.pytorch.org/docs/2.14/notes/serialization.html) — PyTorch
