Дыра в роботе: как Hugging Face проигнорировала собственный урок безопасности

Платформа LeRobot от Hugging Face, набравшая почти 24 000 звёзд на GitHub, содержит критическую уязвимость, которая позволяет любому желающему без какой-либо аутентификации выполнять произвольный код на машине с запущенным сервером. Уязвимость отслеживается под идентификатором CVE-2026-25874 и получила оценку CVSS 9.3 — это критический уровень. Патча до сих пор нет.
Дыра в роботе: как Hugging Face проигнорировала собственный урок безопасности
Изображение носит иллюстративный характер

Первым об этом сообщил исследователь под псевдонимом chenpinji ещё в декабре 2025 года. Команда LeRobot официально отреагировала только в январе следующего месяца, а неделю назад исследователь безопасности Valentin Lobstein из компании VulnCheck опубликовал подробный технический анализ проблемы. Уязвимая версия — LeRobot 0.4.3. Исправление обещают в версии 0.6.0, которой пока не существует.
Корень проблемы — функция pickle.loads(). Это небезопасная десериализация ненадёжных данных, один из самых хорошо известных векторов атак в мире Python. Уязвимость сидит в асинхронном конвейере вывода, конкретно в компоненте PolicyServer и клиенте робота. Данные передаются через gRPC-каналы без TLS и без какой-либо проверки подлинности. Три gRPC-вызова открыты для атаки: SendPolicyInstructions, SendObservations и GetActions. Отправьте туда специально сформированный pickle-объект — и можете запускать на сервере что угодно.
Что делает ситуацию особенно неприятной, так это то, что разработчики были прекрасно осведомлены об опасности. В коде стоят комментарии nosec — это способ заглушить предупреждения инструментов статического анализа безопасности. То есть не случайная оплошность, а сознательное решение: «знаем, что небезопасно, но пусть будет».
Компания Resecurity, которая отдельно проанализировала компонент PolicyServer, описала уязвимость как исключительно опасную. Причина проста: системы AI-инференса, как правило, работают с повышенными привилегиями, имеют доступ к внутренним сетям, датасетам и дорогостоящим вычислительным ресурсам. Атакующий, получивший выполнение кода на таком хосте, может украсть API-ключи, SSH-учётные данные и файлы моделей, двигаться по сети латерально, обрушить сервисы или испортить AI-модели. В случае с роботикой всё это дополняется рисками физической безопасности: скомпрометированный PolicyServer напрямую влияет на поведение подключённых физических роботов.
Технический лид проекта Steven Palma признал проблему. По его словам, кодовая база требует почти полного рефакторинга. Он объяснил, что изначальная реализация была экспериментальной — LeRobot задумывался как инструмент для исследований и прототипирования, поэтому вопросы безопасности при развёртывании просто не стояли на повестке. Это честное объяснение, но оно не снимает проблему: люди уже используют платформу, и часть из них делает это в реальных условиях.
Самое горькое во всей этой истории отметил Valentin Lobstein. Hugging Face — создатели формата Safetensors. Этот формат сериализации был изобретён именно для того, чтобы заменить pickle в машинном обучении, потому что pickle печально известен своей опасностью для ML-данных. Компания, придумавшая безопасную альтернативу, в собственном фреймворке для роботики использовала опасный pickle.loads() — и заглушила все предупреждения об этом.
Пока патч не вышел, любой экземпляр LeRobot PolicyServer, доступный из сети, является открытой дверью. Версия 0.6.0 должна закрыть проблему, но сроков её выхода нет. Тем, кто уже использует LeRobot в чём-то большем, чем локальный эксперимент на изолированной машине, стоит об этом помнить.


Новое на сайте

20949Старая техника Apple получила заплатку для опасной уязвимости 20948Как три уязвимости открыли ShinyHunters путь к серверам PeopleSoft? 20947Может ли ИИ сам собрать уязвимости в работающий взлом? 20946Уязвимость CVSS 10.0 в LXD и MicroCloud позволяет выдать себя за доверенного клиента 20945Google разрешит устанавливать приложения из сторонних магазинов одним нажатием 20944Взлом Chainalysis: что могли увидеть атакующие 20943Oracle E-Business Suite под прицелом: попытки атак начались вскоре после исправления 20942Фишинг без кражи пароля: как Skyw4lker атакует Microsoft 365 20941ИИ в SOC: быстрее расследовать, не теряя контроля 20940Могут ли уязвимости GoAhead подорвать доверие к TLS? 20939Adobe устранила критические уязвимости в Campaign Classic и Connect 20938Как взломанный скрипт DebugBear помог похитить у трейдеров Polymarket около $2,7 млн? 20937Как ошибка в сетевой загрузке UEFI обходит защиту до запуска Secure Boot? 20936Silent Train: сеть скрытных атак Volt Typhoon 20935Как ссылка на ChatGPT могла открыть доступ к чужим чатам?
Ссылка