> · · 6 мин

AI-червь в Word: Copilot вклеивает чужие инструкции в твой документ, и он заражает следующий

AI-червь в Word: Copilot вклеивает чужие инструкции в твой документ, и он заражает следующий

Классическая prompt injection делает одну гадость и умирает вместе с сессией. 28 июля вышло описание атаки, где Copilot for Word не просто выполняет чужие инструкции из вложенного документа, а вклеивает их в результат — белым шрифтом восьмого кегля. Заражённый документ становится следующим носителем. Дальше он расходится по компании обычным способом: коллега берёт его как источник для своего отчёта.

TL;DR: Скрытые инструкции в документе заставляют Copilot for Word изменить создаваемый файл и скопировать в него сам вредоносный промпт белым текстом. Этот файл становится новым вектором, и атака расползается по документам без участия исходного источника. Раскрытие координировали через MSRC с 31 марта, Microsoft выпустила несколько митигаций, и на 28 июля атака воспроизводится со всеми развёрнутыми исправлениями. Робастной защиты для этого класса уязвимости нет ни у Microsoft, ни, по словам автора, у сопоставимых продуктов.

Как работает документный AI-червь

Атака начинается с документа, в который заложен вредоносный промпт в формате JSON. Ключ к невидимости — то, как Copilot for Word готовит текст: он срезает всё форматирование, включая цвет и размер шрифта, прежде чем передать содержимое модели. Белый текст восьмым кеглем на белом фоне модель читает полностью, а человек не видит вообще.

Дальше две стадии.

Стадия 1, закрепление. Как только вредоносный документ попадает в контекст Copilot при создании или правке файла, инструкции срабатывают. В демонстрации автор выбрал наглядное действие — деление всех финансовых показателей пополам. Заодно Copilot копирует весь вредоносный промпт в низ получившегося документа, снова белым текстом восьмого кегля.

Стадия 2, размножение. Заражённый документ теперь сам является вектором атаки. Если его берут как источник в следующей сессии Copilot, инструкции срабатывают снова и копируются дальше. Ни исходный документ, ни скомпрометированный сайт, откуда он пришёл, для этого уже не нужны.

Автор пишет, что это, насколько ему известно, одна из первых публичных демонстраций самораспространения документного AI-червя через штатные рабочие процессы в мейнстримном офисном пакете.

Почему это опаснее обычной инъекции

Сценарий из разбора выглядит буднично. Сотрудник готовит финансовый отчёт, скачивает рыночную аналитику с доверенного сайта, который скомпрометирован, и прикладывает её как исходник при работе с Copilot. Отчёт выходит с изменёнными цифрами и с приклеенным невидимым промптом. Позже коллега берёт этот отчёт как источник для своего документа — и всё повторяется.

Важно, что попасть в контекст вредоносный документ может двумя путями, и второй от жертвы почти не зависит. Первый — человек сам прикрепляет файл. Второй — режим «Edit with Copilot» в work/Work IQ, где Copilot сам ищет релевантные документы в OneDrive жертвы. Если он сочтёт заражённый файл подходящим, он подтянет его без всякой команды.

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

И площадь только растёт. Copilot всё глубже интегрируется с Microsoft Cowork и Microsoft Scout, которые расширяют ассистента до автоматического создания и правки документов и совместных процессов. Механизм остаётся тем же, а поверхность распространения увеличивается на машинной скорости.

Что Microsoft успела починить, а что нет

Таймлайн раскрытия читается как хроника попыток закрыть класс уязвимости точечными патчами.

  • 31 марта — продуктовые команды Microsoft начали работу над митигацией
  • 3 апреля — первая митигация в проде, новый опыт «Edit with Copilot»
  • 9 апреля — исходная формулировка атаки подтверждена как исправленная
  • 9 апреля, в тот же день — поведение воспроизведено новым XPIA-промптом с манипуляцией финансовыми показателями, заведён отдельный кейс в MSRC
  • 15 июля — рабочий эксплойт с червём воспроизведён на GPT-5.6, самой свежей на тот момент модели. Автор предложил отложить раскрытие ещё на две недели ради новой митигации, Microsoft согласилась
  • 28 июля — атака по-прежнему воспроизводится

Формулировка по статусу со стороны Microsoft прямая: тестирование воспроизвело атаку со всеми развёрнутыми митигациями, и на момент публикации робастного средства защиты для широкого класса уязвимости нет. Со стороны клиента полного решения тоже нет.

Справедливости ради, части 1 и 2 того же исследования — векторы через память и тело письма — закрыты полностью. Проблема именно с документным каналом, и автор сам объясняет почему: слабость архитектурная и общая для всех современных LLM-систем, он не знает полной митигации этого класса ни в одном сопоставимом продукте. Закрывается это исследованием, а не патчем.

Подводные камни

Митигация меняет payload, а не механизм. Каждый раз, когда Microsoft закрывала конкретную формулировку, атака воспроизводилась с новой. Изменение запрошенного действия или слов меняет полезную нагрузку, но не задевает ни уязвимость, ни механизм распространения. Ждать «патча» здесь бессмысленно.

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

Совет «проверяйте документы» частично неисполним. Официальная рекомендация — считать внешние документы недоверенными, просматривать вложения перед генерацией и внимательно проверять созданное Copilot перед пересылкой. Для организации, где Copilot используется ежедневно всеми, это означает ручной аудит каждого файла. Так работать никто не будет.

Режим Work IQ обходит первую линию защиты. Совет «не прикрепляй подозрительный документ» не помогает, когда Copilot сам решает, какие файлы из OneDrive релевантны задаче.

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

Альтернативы и смежные работы

Agent Data Injection — академическая работа про атаку, где агенту не дают ни одной команды, а он всё равно запускает чужой код. Тот же корень проблемы, но в агентном контексте, а не в офисном пакете.

Части 1 и 2 того же исследования — векторы через память ассистента и тело письма. Оба закрыты Microsoft полностью, что показывает: класс закрывается там, где канал уже, и не закрывается там, где канал — произвольный пользовательский документ.

Отключение автоматического подтягивания документов — единственная мера, которая реально режет вектор Work IQ. Ценой того, ради чего Copilot и покупали.

Вердикт

Если у вас Copilot for Word в корпоративном контуре и вы работаете с документами от внешних сторон — считайте, что канал открыт, и живите с этим осознанно. Отключите автоматический поиск документов в OneDrive для контекста, если политика позволяет: это единственная настройка, которая закрывает вектор, не требующий действий от жертвы. Для критичных документов вроде финансовой отчётности добавьте детерминированную сверку чисел вне Copilot, потому что визуальное ревью не поймает ни изменённую цифру, ни белый текст под ней. И перестаньте ждать патча: автор раскрытия, который полгода работал с MSRC, прямо пишет, что этот класс уязвимости сейчас не закрыт ни у кого.

Что сделать сегодня

  1. Прочитайте оригинальный разбор с скриншотами — там видно, как выглядит заражённый документ, и это убедительнее описания.
  2. Возьмите любой документ, созданный Copilot на этой неделе: Ctrl+A, поменяйте цвет текста на чёрный, прокрутите вниз. Это тридцать секунд и мгновенная проверка гипотезы.
  3. Проверьте в админке, включён ли режим Work IQ / автоматический поиск документов в OneDrive для контекста Copilot. Если да — решите осознанно, оставлять ли.
  4. Для финансовых и юридических документов заведите правило: числа сверяются с источником вне Copilot. Не потому что модель врёт, а потому что в её контекст мог попасть чужой файл.
  5. Если вы рассылаете созданные Copilot документы наружу, добавьте в процесс шаг проверки на скрытый текст. Ваш заражённый файл станет вектором для партнёра, и это уже вопрос вашей репутации.
$ ls ./related/

Похожие статьи

handbook-md-benchmark.md
Твой CLAUDE.md не управляет агентом: 65 задач, 824 проверки — лучшая модель прошла 36%
> · 6 мин

Твой CLAUDE.md не управляет агентом: 65 задач, 824 проверки — лучшая модель прошла 36%

Surge AI выложила HANDBOOK.md — бенчмарк, который проверяет не «справился ли агент с задачей», а «удержал ли его регламент, пока он справлялся». Лучшая из 30 конфигураций проходит 36,2% попыток, большинство фронтир-моделей — меньше 25%.

ai agents llm claude-code
chatgpt-voice-codex-desktop.md
Codex теперь рулится голосом, а мультипапочный проект читает только один AGENTS.md
> · 6 мин

Codex теперь рулится голосом, а мультипапочный проект читает только один AGENTS.md

OpenAI 23 июля привезла ChatGPT Voice в десктопные приложения: голосом можно запускать и проверять задачи Codex в других тредах, а на macOS включается Screen context. Плюс мультипапочные проекты с неочевидным поведением конфигов и релиз Codex CLI 0.145.0, где /import переносит настройки из Cursor и Claude Code.

ai agents openai codex
agent-data-injection.md
Agent Data Injection: атака не даёт агенту ни одной команды, а он всё равно запускает чужой код
> · 7 мин

Agent Data Injection: атака не даёт агенту ни одной команды, а он всё равно запускает чужой код

Исследователи из Сеульского национального университета и UIUC показали атаку, которая обходит все защиты от prompt injection, потому что не подделывает инструкции — она подделывает факты. Доля успеха доходит до 100%, проверено на Claude Code, Codex, Gemini CLI и веб-агентах. Как защищаться, пока фикса нет.

ai agents llm security
subscribe.sh

$ cat /dev/blog/updates

> Свежие заметки о программировании,

> DevOps и AI — прямо в мессенджер

./subscribe