#Copilot #Mermaid #PromptInjection #LLMSecurity #LLMSecOps #MLSecOps #SupplyChain #IncidentResponse
Исследователь описал вариант косвенной инъекции промпта, заставляющий Microsoft 365 Copilot извлекать данные из тенанта, кодировать их в hex и вставлять в сгенерированную Mermaid-диаграмму с кликабельной ссылкой, которая затем передает данные на C2.
➡️Уязвимость дает сочетание двух факторов
- Copilot может вызывать инструменты типа
search_enterprise_emails в контексте тенанта и включать результаты в сгенерированный вывод.- Mermaid-артефакты поддерживают кликабельные ссылки на ресурсы, что дает неочевидный exfil-канал.
➡️Цепочка эксплуатации
- В документ встраиваются скрытые инструкции (progressive / indirect prompt injection), например, для сбора email.
- Copilot собирает данные тенанта через доступные инструменты.
- Данные кодируются (hex) и подставляются в текст, который Copilot генерирует как Mermaid-диаграмму.
- Mermaid-диаграмма рендерится в интерфейсе как интерактивный объект с ссылками.
- При открытии или при клике клиент/браузер делает запрос к серверу C2, в логах сервера собираются куски hex-строки и восстанавливаются данные.
➡️Что сделано
- Уязвимость продемонстрирована и задокументирована (Coordinated Disclosure с MSRC), в материале описан процесс взаимодействия с Microsoft и работа над фиксом
- Баг исправлен (без CVE)
- Похожие уязвимости в рендерах Mermaid были исправлены в других продуктах, например, в Cursor IDE (CVE-2025-54132)
➡️Рекомендации
- Отключить автодоступ Copilot к чувствительным источникам или ограничить scope инструментов.
- Блокировать/фильтровать внешние вызовы из рендерера (запрет fetch/images/iframe в Mermaid и других визуальных плагинах).
- Внедрить детекцию в eDiscovery/archived-exports: искать mermaid + click + длинные hex-строки.
- Не кликать на неожиданные интерактивные элементы в сгенерированных отчетах/диалогах Copilot.
🔗 Источник
🌚 @poxek | 📲 MAX |🌚 Блог | 📺 YT | 📺 RT | 📺 VK | ❤️ Мерч
