Услуги Портфолио Контакты БлогНовости +7 (800) 511‑32‑27 Обсудить проект
Безопасность

SalesBleed в Salesforce Agentforce: одна заявка с сайта заставляла ИИ-агента сливать данные CRM

26 сентября 2026·6 мин чтения
Salesforce AgentforcePrompt Injection
SalesBleed в Salesforce Agentforce: одна заявка с сайта заставляла ИИ-агента сливать данные CRM

Коротко о главном

SalesBleed — связка из трёх уязвимостей в Salesforce Agentforce, которую 24 сентября 2026 года раскрыла Zenity Labs: вредоносная заявка через публичную форму Web-to-Lead захватывала ИИ-агента и без единого клика выносила данные CRM через DNS-запросы. Salesforce исправила всю цепочку к 19 августа — действий от клиентов платформа не требует, но проверить собственные агентные сценарии стоит сейчас.

Главный урок шире одного вендора: любой ИИ-агент, который читает внешние данные, имеет доступ к внутренним таблицам и умеет выводить ссылки или картинки, повторяет ту же схему. Если вы встраиваете LLM-агентов в CRM, портал или поддержку, закладывайте изоляцию прав и контроль исходящего трафика на этапе проектирования — именно так мы подходим к разработке ИИ-решений и CRM-систем.

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

Что нашла Zenity Labs

Исследователи Zenity Labs (Алекс Апостолов, Жуан Донату, Авишай Эфрат и Аюш Рой Чоудхури) описали цепочку, в которой атакующему не нужны ни учётная запись Salesforce, ни действия жертвы. Вход — официальный механизм сбора лидов Web-to-Lead: неаутентифицированная форма, данные которой напрямую ложатся в таблицу Leads.

В одно из полей заявки встраивались скрытые инструкции. Лид выглядел обычным и мог месяцами лежать в базе. Срабатывание наступало, когда сотрудник просил агента о рутинной вещи — например, разобрать новые заявки. Агент читал отравленную запись как часть контекста и выполнял внедрённые команды.

Отдельно исследователи подчёркивают: повышать привилегии не требовалось. CRM-субагент по умолчанию имел доступ на чтение сразу к Leads и Accounts, поэтому мог достать названия компаний-клиентов и суммы сделок.

Как данные уходили наружу без клика

Защитой от подобного вывода в Agentforce служит механизм Trusted URLs: ссылки на недоверенные домены вырезаются из ответа агента. Zenity нашла два обхода. Первый — домен в зоне, которую редактор не распознавал как имя хоста (в PoC использовался домен .fun). Второй — символы-ограничители вроде фигурных и квадратных скобок, которые фильтр и браузер разбирали по-разному.

Дальше данные кодировались прямо в поддомен, подконтрольный атакующему. Для утечки было два маршрута:

  • Рендер картинки. Агент выводил HTML-тег img, интерфейс загружал внешний источник без санитизации — и браузер сам отправлял DNS-запрос.
  • Превью ссылок в Slack. В связке Agentforce и Slack мессенджер автоматически разворачивает URL в карточку-превью, и запрос уходил без участия получателя.

Ключевая деталь — DNS. Данные оказываются на авторитативном сервере атакующего на этапе резолва имени, ещё до HTTP-запроса. Поэтому блокировка только на уровне HTTP такую утечку не останавливает.

Фишинг от имени корпоративного агента

Третья часть SalesBleed касается интеграции со Slack: агент не проверял, кто именно инициирует отправку сообщения. Захватив его через отравленный лид, атакующий мог публиковать сообщения во внутренние каналы от имени доверенного корпоративного бота. Для сотрудника такой пост выглядит как штатное уведомление системы, что делает фишинг заметно убедительнее обычного письма.

Хронология и статус исправления

Zenity Labs сообщила о проблемах 1 июня 2026 года, на следующий день Salesforce подтвердила получение и подключила инженеров. 18 августа вендор подтвердил полное исправление, 19 августа исследователи проверили закрытие обхода Trusted URLs. Публичное раскрытие состоялось 24 сентября, когда уязвимости уже не эксплуатировались. Salesforce усилила механизм Trusted URLs; технические детали патча не раскрываются. Идентификаторов CVE в публикациях нет.

Что это значит для команд с ИИ-агентами

Agentforce — облачная платформа, патч применён на стороне вендора. Но схема SalesBleed воспроизводится в любых собственных агентах: чат-ботах поддержки, ассистентах в CRM, агентах в корпоративных мессенджерах. Опасное сочетание одно и то же: недоверенный ввод + доступ к чувствительным данным + канал вывода наружу. Убираете любое из трёх звеньев — цепочка рвётся.

Что стоит проверить уже сейчас:

  1. Права субагентов. Каждому инструменту — минимальный набор таблиц. Агенту, который разбирает входящие лиды, не нужен доступ к сделкам и счетам.
  2. Внешние формы как недоверенный ввод. Данные из веб-форм, писем и тикетов перед передачей агенту фильтруйте и помечайте как контент, а не как инструкции.
  3. Исторические записи. Отравленный лид срабатывает при каждом обращении агента. Просмотрите старые заявки на аномальные поля — длинные тексты, инструкции, ссылки на незнакомые домены.
  4. Вывод агента. Фильтр ссылок должен совпадать с тем, как URL разбирают все последующие потребители: браузер, мессенджер, почтовый клиент. Картинки из внешних источников в ответах агента лучше запретить совсем.
  5. Исходящий DNS. Мониторьте DNS-запросы из сред, где работают агенты: длинные случайные поддомены — типичный признак эксфильтрации.
  6. Идентификация в интеграциях. Агент, который пишет в Slack или Teams, должен проверять, от чьего имени и по чьему запросу он действует.

Часто задаваемые вопросы

Нужно ли клиентам Salesforce что-то обновлять? Нет. По данным Zenity Labs и Salesforce, вся цепочка исправлена на стороне платформы, эксплуатация сейчас невозможна. Имеет смысл проверить права агентов и старые записи Web-to-Lead.

Были ли реальные атаки? В публикациях исследователей и СМИ о подтверждённой эксплуатации не сообщается — это результат исследования с ответственным раскрытием.

Почему не спас фильтр доверенных URL? Он разбирал ссылки иначе, чем браузер и Slack. Любое расхождение между фильтром и конечным рендерером становится обходом.

Касается ли это собственных LLM-агентов? Да, если агент читает внешние данные, имеет доступ к внутренним базам и может выводить ссылки или изображения. Это архитектурный класс проблем, а не баг одного продукта.

Источники

Проверим ваших ИИ-агентов на prompt injection

Разберём, какие данные видят ваши агенты в CRM, чат-ботах и мессенджерах, найдём каналы утечки через ссылки, картинки и DNS и поможем урезать права без потери функциональности.

Заказать аудит безопасности
Материал подготовлен редакцией YuSMP Group по открытым источникам. Нужна экспертиза по теме или разработка под задачу — обсудим проект.