flawopen.com/AI Security/manus-email-prompt-injection-agent-runtime-october-2026
Prompt-инъекция через почту в Manus: код выполнился до предупреждения
Salt Labs сообщила, что специально подготовленное письмо могло привести к выполнению кода в серверной среде Manus до предупреждения пользователя. Исследователи утверждают, что сообщили об этом ответственным образом и проблема устранена; CVE и реальный взлом пользователя не заявлены.[1]
Представьте сотрудника почтовой комнаты: он читает письмо и выполняет скрытые в нём указания, а уже потом спрашивает руководителя, заслуживает ли письмо доверия. Предупреждение появляется после действия. Граница безопасности должна не допустить превращения недоверенного текста письма в исполняемые инструкции.[1]
Ключевые понятия и термины
Косвенная prompt-инъекция- Инструкции в содержимом, которое ИИ должен изучить, например в письме, а не в прямом запросе пользователя.[1], [5]
Среда выполнения агента- Процесс и инструменты, которыми может пользоваться агент. Их права и изоляция определяют последствия действий под влиянием модели.[1], [6]
Связи со стандартами
- Концептуальное соответствие FlawOpen для MITRE CWE; ни поставщик, ни запись CVE не присваивали этот идентификатор слабого места данной исследовательской демонстрации. CWE-94
- OWASP GenAI 2025 — LLM01:2025 Инъекция промпта
- OWASP GenAI 2025 — LLM06:2025 Чрезмерные полномочия агента
Пошаговый сценарий атаки
Пользователь просит Manus проверить почту
По данным Salt Labs, в контролируемом тесте было достаточно попросить Manus изучить входящие; дополнительный клик или кража учётных данных не требовались.[1]
Письмо передаёт недоверенное содержимое
Сообщение содержало инструкции внутри обычного текста. Классификация или предупреждение модели не является границей безопасности для этих данных.[1]
Содержимое попадает в серверный путь выполнения
Salt Labs сообщает, что Manus обрабатывал содержимое через среду Node.js и выполнял код до появления предупреждения и запроса подтверждения. Точная внутренняя реализация не опубликована; это рассказ исследователей, а не аудит исходного кода.[1]
Среда выполнения имеет доступ к подключённым разрешениям
В контролируемом тесте среда, по данным Salt Labs, могла обращаться к токенам подключённых пользователем сервисов. Потенциальный охват зависел от доступных интеграций и разрешений.[1]
Уязвимость устранена после раскрытия
Salt Labs сообщает, что передала сведения через программу bug bounty Meta и конкретный приём больше не работает. Это демонстрация исследователей, а не сообщение о взломе клиента; CVE и публичного diff исправления нет.[1]
Исходный код: Уязвимый vs Защищённый вариант
Salt Labs не публикует уязвимый исходный код Manus или diff исправления поставщика. Примеры иллюстрируют общую ошибку границы доверия и защитную архитектуру, а не реконструируют продукт. Недоверенная почта должна обрабатываться в режиме суммаризации без возможности выполнения. Отдельная серверная политика обязана разрешить конкретное действие до его выполнения инструментом или средой.[1], [6]
// Иллюстрация небезопасного дизайна; это не исходный код Manus.
async function inspectEmail(email: Email) {
return agent.process(email.body, { tools: [serverSideRuntime] });
}
// Иллюстрация более безопасной границы; не реализация и не патч Manus.
async function inspectEmail(email: Email, session: AuthenticatedSession) {
const summary = SummarySchema.parse(
await readOnlyModel.summarize({ content: email.body })
);
const proposal = ActionRequestSchema.parse(
await readOnlyModel.proposeAction({ summary })
);
if (!proposal) return summary;
const approval = await approvalStore.consumeExact({
actorId: session.userId,
action: proposal.action,
resourceId: proposal.resourceId
});
const permit = await serverPolicy.authorize({
actorId: session.userId,
action: proposal.action,
resourceId: proposal.resourceId,
approval
});
if (!permit.allowed) throw new Error("Action denied");
return narrowTools.execute(permit.approvedAction);
}
Чек-лист по защите системы для инженеров
- ✓Считайте тексты писем, вложения, цитируемые переписки и полученное веб-содержимое недоверенными данными, даже если модель помечает их как безопасные или вредоносные.[1], [5]
- ✓Не разрешайте суммаризации почты вызывать универсальную среду выполнения кода. Отделите анализ только для чтения от вызова инструментов и используйте узкие типизированные инструменты.[1], [6]
- ✓Применяйте авторизацию до выполнения в серверной политике; привязывайте подтверждение к аутентифицированному субъекту, точному действию и ресурсу и короткому сроку действия.[6]
- ✓Обеспечьте реальную изоляцию: не предоставляйте среде обработки содержимого OAuth-токены или широкие учётные данные коннекторов.[1], [6]
- ✓Запрещайте действие по умолчанию, если недоступны подтверждение, аудит или проверка политики. Предупреждение после выполнения не является защитой.[6]
- ✓Сохраняйте журналы вызовов инструментов и среды выполнения; проверяйте тестами, что письмо с враждебным содержимым не запускает действие до авторизации.[1], [6]
- ✓Salt Labs утверждает, что раскрытая проблема устранена. Проверьте актуальные рекомендации Manus и не делайте вывод, что та же ошибка есть у всех агентных платформ.[1]
Источники
- Основное исследование Salt Labs: How We Hijacked an AI Agent With a Single Email (1 октября 2026)
- Сообщение Salt Security об исследовании Salt Labs (1 октября 2026)
- Материал TechRadar об исследовании Manus (2 октября 2026)
- MITRE CWE-94 (редакционная классификация FlawOpen)
- OWASP LLM01: prompt-инъекция
- OWASP LLM06: чрезмерная автономность