Никакого кода, никакого фишинга — просто ссылка и терпение.

Специалисты Imperva нашли в Dify две критические уязвимости, одна из которых позволяла захватить учётную запись после одного клика по ссылке. Dify используют компании, которым нужны собственные инструменты на базе искусственного интеллекта без большой команды разработчиков. Проект набрал более 142 000 звёзд на GitHub, а его контейнер Docker скачали более 10 млн раз.
Dify помогает собирать и запускать рабочие процессы с искусственным интеллектом, подключать внешние службы и хранить важные настройки. Если бы злоумышленники взломали такую платформу, они могли получить доступ к ключам интерфейсов программирования моделей, учётным данным подключённых сервисов, внутренним рабочим процессам и частным данным пользователей.
Первая уязвимость касалась того, как Dify загружала файлы. Платформа хранила их в открытом виде, не проверяя права доступа, и присваивала предсказуемые адреса. Ещё опаснее оказалось то, как были настроены домены: поддомен для загруженных файлов upload.dify.ai был связан с основным доменом cloud.dify.ai, где пользователи входили в учётные записи и управляли рабочими процессами.
Атакующему было достаточно создать временную учётную запись, загрузить вредоносный файл, изменить в ссылке поддомен с upload на cloud и отправить ссылку жертве. Если администратор открывал файл, браузер запускал код с правами доверенного домена.
Для проверки специалисты Imperva загрузили изображение в формате SVG. Такой файл основан на XML и может содержать код JavaScript. Подменив поддомен, злоумышленник запускал вредоносный код в контексте Dify и получал доступ к сеансу пользователя, включая файлы cookie, локальное хранилище и обращения к внутренним программным интерфейсам.
Imperva сообщила о проблеме 14 января 2026 года. По данным компании, разработчики Dify не ответили на уведомления, но 17 марта тихо выпустили исправление. В новой версии сервер стал отдавать загруженные файлы как application/octet-stream, из-за чего браузер скачивает файл, а не открывает его.
Вторая уязвимость затрагивала изоляцию пользователей в общих средах. Dify должна была отделять код разных пользователей друг от друга, но Python выполнялся в общем каталоге файловой системы под одной и той же системной учётной записью. Из-за этого злоумышленник мог получить скрипты других пользователей из общей папки /tmp.
Dify шифровала такие файлы, но защита оказалась слабой. По словам Imperva, схема напоминала шифр Виженера с повторяющимся ключом длиной 64 байта, поэтому специалисты смогли восстановить исходный код из украденного файла.
Позднее Dify изменила механизм выполнения кода и стала выдавать каждому запуску уникальную системную учётную запись. Такой подход мешает пользователям читать чужие файлы. При этом слабое шифрование, по данным Imperva, разработчики не исправили.
Imperva считает найденные ошибки симптомом более широкой проблемы. Платформы для искусственного интеллекта быстро добавляют совместную работу, позволяют обмениваться файлами, подключать внешние сервисы и использовать общие среды выполнения, но защита таких функций часто не успевает за развитием продукта. Администраторам Dify советуют проверить версии своих установок и убедиться, что последние исправления уже применены.