← Все статьи
Plugin4Shell: zero-click RCE в четырёх ведущих ИИ-агентах для кодинга — как уязвимость позволила владельцам репозиториев подменять закреплённый код плагинов

Plugin4Shell: zero-click RCE в четырёх ведущих ИИ-агентах для кодинга — как уязвимость позволила владельцам репозиториев подменять закреплённый код плагинов

Исследователи безопасности из компании AIR, специализирующейся на защите корпоративных ИИ-агентов, обнаружили zero-click уязвимость удалённого выполнения кода (RCE), затрагивающую все основные агенты для программирования: Claude Code от Anthropic, Codex от OpenAI, Gemini CLI от Google и GitHub Copilot от Microsoft. По словам исследователей, эксплойт под названием Plugin4Shell представляет собой «первую в своём роде атаку на цепочку поставок ИИ-агентов».

В отличие от атак на саму модель или агента, Plugin4Shell нацелен на доверенные маркетплейсы, где размещаются плагины для основных агентов. Такие атаки могут охватить миллионы пользователей и машин. «Любой, кто использует крупный агент для кодинга с установкой плагинов из маркетплейса, подвержен риску. При этом уязвимость не ограничивается пользователями, которые небрежно устанавливают плагины: жертве достаточно иметь установленный плагин из доверенного маркетплейса, который был проверен и закреплён именно так, как того требует модель безопасности», — подчёркивают исследователи.

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

Plugin4Shell: zero-click RCE в четырёх ведущих ИИ-агентах для кодинга — как уязв

Исследователи называют это «обходом SHA-пиннинга плагинов». Claude Code, Codex и GitHub Copilot используют одну версию уязвимости, связанную с тем, как git обрабатывает имена веток. Gemini CLI подвержен отдельному механизму при получении и извлечении закреплённых коммитов, но результат тот же. Опасность в том, что атака затрагивает тех, кто всё сделал правильно. «Это не только ошибка времени установки, и именно это делает её zero-click: тот же git checkout повторно выполняется при фоновом автообновлении — по умолчанию в Claude Code и Codex, — поэтому когда маркетплейс обновляет закреплённый SHA, подмена достигает уже установленных плагинов без каких-либо действий пользователя», — поясняют в AIR.

Атака работает там, где ветку можно назвать как хеш. Это поведение git по умолчанию, но некоторые хостинги его запрещают: GitHub отклоняет 40-символьное шестнадцатеричное имя ветки, тогда как Bitbucket и любой self-hosted git-сервер позволяют это. Представитель GitHub заявил, что атаки Plugin4Shell не затрагивают GitHub, поскольку компания не разрешает создавать ветки или теги с именами, похожими на SHA коммитов. Однако исследователи AIR считают эту меру недостаточной, так как маркетплейсы могут размещаться и на других платформах, например Bitbucket. «Microsoft Copilot также остаётся уязвимым, поскольку поддерживает маркетплейсы с таких платформ, что подвергает его этой уязвимости», — добавили они.

Исследователи сообщили о проблеме всем четырём вендорам в июне. Anthropic и OpenAI выпустили патчи в Claude Code 2.1.179 и Codex 0.146.0 соответственно. Google объявил Gemini CLI устаревшим и заявил, что не будет исправлять уязвимость, поэтому каждая установка остаётся уязвимой. Google рекомендует пользователям перейти на новую среду разработки Antigravity, которая защищена от этой атаки. Microsoft не исправила уязвимость в Copilot и не ответила на запросы AIR, сославшись на большой объём обращений по раскрытию уязвимостей.

«Исправление должно выйти в самом агенте, и обновление — единственная полная мера защиты там, где она существует», — заявили исследователи AIR Ор Нево, Дор Гранат и Нив Хоффман. Они также отметили, что почти 90% компаний из списка Fortune 500 используют Copilot, по данным Microsoft.

Существует два основных сценария эксплуатации. В первом злоумышленник публикует плагин, который работает точно как заявлено, проходит проверку, пользователи его устанавливают, и лишь затем атакующий делает его вредоносным. AIR уже демонстрировали этот подход в предыдущих исследованиях: созданный ими плагин распространился на более чем 26 000 агентов, прежде чем был удалён. Во втором сценарии атакующий захватывает репозиторий плагина, написанного другим автором и уже пользующегося доверием, и использует тот же обход для распространения вредоносного кода на всех, у кого он установлен. AIR продемонстрировали такой захват в исследовании под названием SkillJacking, где обнаружили 925 навыков, уже активно используемых, которые были угнаны у их первоначальных сопровождающих и достигли 134 000 агентов.

«Вместе цепочка доказана от начала до конца: захваты происходят в масштабе, а Plugin4Shell обходит механизм, созданный для сдерживания», — заключают исследователи. Таким образом, доверие к цепочке поставок ИИ-инструментов разработки оказывается под вопросом, поскольку даже проверенные и закреплённые плагины могут быть скомпрометированы без ведома пользователя.

Источник: theregister.com

Дополнительные источники: bleepingcomputer.com, siliconangle.com, darkreading.com, theregister.com, helpnetsecurity.com, air.security, codifycli.com, agentichighway.ai