В мире инструментов для работы с искусственным интеллектом разгорается скандал. Исследователи безопасности обнаружили опасную брешь в Open WebUI - популярной платформе с открытым исходным кодом, которая используется для взаимодействия с большими языковыми моделями (LLM). Уязвимость кроется в, казалось бы, безобидной функции смены профильной фотографии. Однако злоумышленник может превратить обычную аватарку в инструмент для полного захвата учётной записи и даже сервера.
Детали узявимости
Проблема относится к классу хранимых межсайтовых скриптов (stored XSS - вредоносный код, который сохраняется на сервере и выполняется в браузере других пользователей). Специалист по кибербезопасности Метин Юнус Кандемир обнаружил, что Open WebUI некорректно проверяет тип загружаемого изображения. Когда пользователь меняет аватар, система принимает файл в формате base64 - это способ кодирования двоичных данных в текстовую строку. При этом она не проверяет, является ли файл действительно безопасным изображением. В результате атакующий может загрузить не картинку, а вредоносный SVG-файл (масштабируемая векторная графика), в который встроен JavaScript-код.
Уязвимость работает следующим образом. Злоумышленник формирует специальную строку с префиксом "data:image/svg+xml;base64," и помещает в неё закодированный скрипт. Затем он загружает эту строку как свою аватарку. Когда жертва открывает страницу с этим изображением, браузер выполняет скрытый код. Причина в том, что сервер возвращает такой файл с заголовком "inline" - то есть отображает его прямо в окне, а не предлагает скачать. Из-за отсутствия ограничений на допустимые форматы (должны быть только JPEG, PNG, GIF, WebP) система обрабатывает даже SVG с JavaScript внутри.
Особую опасность представляет то, что для атаки достаточно одного клика. Если жертва является администратором или имеет права "workspace.tools" (разрешение на создание инструментов в рабочем пространстве), скрипт может в фоне вызвать API-интерфейс и создать новую утилиту с произвольным кодом. Так злоумышленник получает возможность удалённого выполнения команд (RCE - remote code execution) на сервере. На практике это означает полный контроль над системой.
Даже если жертва - обычный пользователь без привилегий, последствия остаются тяжёлыми. Вредоносный скрипт может украсть токен доступа из локального хранилища браузера, а также историю всех чатов. Эти данные скрытно отправляются на внешний сервер атакующего. После этого злоумышленник может войти в учётную запись жертвы и использовать её от имени законного владельца. Таким образом, атака позволяет как получить доступ к конфиденциальной переписке, так и повысить свои привилегии в системе.
Исследователь сообщил об уязвимости разработчикам Open WebUI ещё в марте 2026 года. Однако реакция команды проекта оказалась, мягко говоря, нестандартной. Спустя два месяца отчёт был закрыт как дубликат со ссылкой на некий внутренний бюллетень безопасности, который не был опубликован публично. При этом авторы находки не получили официального признания. Кандемир посчитал, что такой подход нарушает принятые в индустрии принципы ответственного раскрытия уязвимостей. Поэтому он принял решение опубликовать все технические детали - чтобы предупредить сообщество.
На момент публикации проблема остаётся неисправленной. Уязвимость подтверждена в версии 0.7.2, а более свежей версии с патчем не существует. Разработчики не выпустили исправление, несмотря на то, что прошло уже несколько месяцев с момента первого отчёта. Единственный способ защиты для обычных пользователей - не переходить по ссылкам, которые ведут к вашему экземпляру Open WebUI, особенно если они пришли по электронной почте от незнакомцев. Для системных администраторов существует временное решение: вручную изменить код файла "users.py", добавив "белый список" разрешённых типов изображений - например, только "image/png", "image/jpeg", "image/gif" и "image/webp", полностью исключив "image/svg+xml". Однако такой патч требует вмешательства в исходный код, что подходит не всем.
Этот инцидент вновь напоминает о том, как простые, на первый взгляд, функции могут стать источником серьёзных угроз. В эпоху повсеместного внедрения инструментов на основе ИИ даже смена аватарки способна привести к компрометации всей инфраструктуры. Пока патч не вышел, каждому, кто использует Open WebUI, стоит быть предельно осторожным и минимизировать взаимодействие с непроверенными ссылками. Вопрос к разработчикам остаётся открытым: почему критическая уязвимость, о которой знают уже несколько месяцев, до сих пор не закрыта? И когда пользователи смогут вздохнуть спокойно, не опасаясь, что их собственная аватарка обернётся против них?
Ссылки