
Hugging Face опубликовала отчёт о независимом аудите безопасности фреймворка Gradio, проведённом компанией Trail of Bits. Проверка охватила четыре сценария эксплуатации — от локального запуска до развёртывания на Hugging Face Spaces и цепочки поставок. Все обнаруженные уязвимости были закрыты до выхода Gradio 5, и теперь фреймворк поставляется с усиленной безопасностью «из коробки», не требуя от разработчиков ручной настройки CORS, CSP и других защитных механизмов.
Gradio — один из самых популярных инструментов для создания веб-интерфейсов ML-моделей на Python: более 6 миллионов установок ежемесячно через PyPI и свыше 470 тысяч приложений, размещённых на Hugging Face Spaces. До сих пор безопасность Gradio строилась на реактивном патчинге уязвимостей по мере их обнаружения сообществом. С выходом пятой версии подход изменился: Hugging Face решила провести превентивный аудит с привлечением внешних экспертов.
Что обнаружили Trail of Bits
Аудит выявил уязвимости в четырёх ключевых категориях.
При локальном запуске Gradio-приложений были найдены проблемы с SSRF (Server-Side Request Forgery): атакующий мог отправлять запросы на произвольные внутренние ресурсы и читать ответы. Кроме того, отсутствовала фильтрация загружаемых файлов, что позволяло хостить XSS-пэйлоады на сервере Gradio и угонять сессии аутентифицированных пользователей. Состояние гонки (race condition) давало возможность перенаправлять трафик на подконтрольный злоумышленнику сервер и перехватывать загруженные файлы и историю чатов. Наконец, в некоторых компонентах функции постобработки допускали утечку произвольных файлов без аутентификации.
Для приложений, развёрнутых на Hugging Face Spaces, критической оказалась уязвимость TOB-GRADIO-19: удалённое выполнение кода (RCE) с правами root на API-сервере Gradio через некорректную конфигурацию nginx, которая открывала неаутентифицированный Docker API. Это позволяло подменить хост и порт в механизме frp-туннелирования и перенаправить весь трафик на вредоносный сервер. Также была обнаружена слабая шифровка соединений между frp-клиентом и frp-сервером, что делало возможным перехват и модификацию данных.
В цепочке поставок Gradio проблемы касались GitHub Actions: несколько сторонних действий были привязаны к тегам или веткам, а не к полным SHA коммитов. Это открывало сценарий подмены действий злоумышленником с потенциальной утечкой секретов или компрометацией релизов.
Как исправляли
Hugging Face работала с Trail of Bits в несколько итераций: сначала эксперты идентифицировали риски, затем команда Gradio разрабатывала и внедряла исправления, после чего Trail of Bits валидировала каждое решение. Все уязвимости были закрыты до выхода Gradio 5.0.
В дополнение к точечным фиксам команда Gradio внедрила системные меры: добавила юнит-тесты безопасности, фаззинг-тесты для поиска новых уязвимостей, а также интегрировала статический анализатор Semgrep в CI для автоматического выявления типовых проблем безопасности и предотвращения регрессий.
Что это значит для разработчиков
Для тех, кто использует Gradio для создания и шаринга ML-демо, ключевое изменение — безопасность по умолчанию. Разработчику больше не нужно самостоятельно разбираться с CORS, CSP, валидацией файлов или изоляцией frp-туннелей: фреймворк сам применяет корректные настройки. Это особенно важно для команд, которые быстро прототипируют интерфейсы и публикуют их в открытом доступе — например, на Hugging Face Spaces.
Практический совет: при обновлении до Gradio 5 стоит проверить, не использовали ли вы в своих приложениях кастомные обработчики загрузки файлов или нестандартные конфигурации nginx. Если да — убедитесь, что они не переопределяют новые защитные механизмы. Для стандартных сценариев (gr.Interface, gr.ChatInterface) достаточно выполнить pip install —upgrade gradio.
Ограничения аудита
Trail of Bits подчёркивает, что полное отсутствие уязвимостей доказать невозможно. Аудит охватил конкретные сценарии, согласованные с Hugging Face, и не является исчерпывающей проверкой всего кода. Однако это значительный шаг вперёд для экосистемы ML-инструментов, где безопасность веб-приложений часто остаётся на втором плане.
Полный отчёт Trail of Bits опубликован в открытом доступе — с ним можно ознакомиться для детального понимания каждой уязвимости и методов её исправления. Hugging Face также заявила о намерении продолжать сотрудничество с security-сообществом и регулярно проводить аудиты по мере развития Gradio.