# Файлы моделей Hugging Face могут запускать скрытый код

Published: 2026-10-12

Вредоносные пакеты моделей могут выполнять код во время небезопасной загрузки. Три документированных примера объясняют обратные оболочки Pickle, поведение сканера поврежденных файлов и продемонстрированную исследованиями путаницу в именах моделей, с четкими ограничениями на заявления о краже учетных данных.

Canonical: https://thedailydiff.dev/ru/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 в феврале две тысячи двадцать четвертого года. Его полезная нагрузка Pickle открыла обратную оболочку, подключившись извне, чтобы предложить удаленный доступ к командам. Репозиторий был удален. JFrog также нашел улики, указывающие на причастность исследователей,

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

### Какие секреты находятся в пределах досягаемости процесса?

1:09 Код, запущенный от имени вашего пользователя, может читать все, что может читать этот процесс. Подключенный ключ облака или доступный токен становится возможной целью. Для отправки также требуется работающий сетевой маршрут. Только числовые веса не обладают магическими полномочиями учетных данных. Ваши разрешения предоставляют интересную часть карточки модели. Есть еще одна дверь. Некоторые модели просят вас доверять удаленному коду, который авторизует Python из репозитория. Файлы safetensor могут находиться рядом с этим кодом.

1:32 Проверка формата весов закрывает один вход, в то время как код репозитория все еще ждет, пока вы предоставите ему гостевой пропуск.

### Почему отсутствующий локальный путь может стать удаленной моделью?

1:38 Checkmarx продемонстрировал Model Confusion. Отсутствующий локальный путь модели может быть разрешен в публичный репозиторий с совпадающим именем. Объедините это с удаленным кодом, включенным, и неправильный пакет может быть выполнен. Это была исследовательская демонстрация, включающая образец неназванной компании, исправленный в течение дня. У отсутствующей папки появился домовладелец. ReversingLabs сообщила о двух образцах в феврале две тысячи двадцать пятого года,

### Как поврежденные пакеты обходили старый сканер?

1:58 назвав эту технику nullify AI. Оба содержали обратные оболочки. Их упаковка в 7-zip блокировала обычную загрузку PyTorch, поэтому этот путь требовал извлечения и небезопасной десериализации. Поврежденные потоки Pickle также выявили слепое пятно сканера. Неудачное сканирование требует расследования, прежде чем кто-либо откроет посылку. В безвредном тесте исследователей инструкции записали файл до того, как загрузчик

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

2:43 Предпочитайте безопасные тензоры и текущие исправленные загрузчики.

### Что удерживает ключ вне досягаемости гостя?

2:46 PyTorch сузил свой загрузчик по умолчанию, начиная с версии два точка шесть. Проверяйте пользовательский код и закрепляйте проверенную ревизию. Запускайте незнакомые пакеты в изоляции без личных ключей, с ограниченным сетевым доступом. Контейнер, полный подключенных учетных данных, — это подарочная корзина с пространствами имен. У этой начальной загадки есть ответ. Сбой загрузки сообщает вам, где остановилось выполнение. Более ранние инструкции, возможно, уже были выполнены.

3:08 Держите секреты вне его досягаемости, прежде чем открывать посылку. Вердикт, изнутри.

### Почему я бы поставил отметку "ТРЕБУЕТСЯ ПРОВЕРКА"?

3:16 загрузчик. Бесплатная загрузка должна включать модель, и список гостей должен оставаться моим решением. Если вы предпочитаете читать это, а не слушать, The Daily Diff попадает в ваш почтовый ящик каждое утро, бесплатно на the daily diff dot dev, ссылка ниже. И это The Daily 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
