Plugin4Shell обходит проверку плагинов — два из четырёх агентов без исправления

Исследование AIR Security от 17 сентября 2026 года раскрыло Plugin4Shell — способ подменить код плагина после проверки и закрепления версии по хешу коммита. Уязвимость затронула Claude Code, OpenAI Codex, GitHub Copilot и Gemini CLI.
Независимый разбор Help Net Security подтверждает исправления для Claude Code начиная с версии 2.1.179 и Codex начиная с 0.146.0; для GitHub Copilot исправление не заявлено, а Gemini CLI планируют вывести из эксплуатации без устранения уязвимости. Однако отсутствие исправления не означает одинаковый практический риск для каждой установки: основной вариант атаки зависит от площадки размещения репозитория, а в Gemini CLI применяется другой механизм подмены.
Как закреплённый хеш переставал быть гарантией
Каталог плагинов проверяет определённую версию расширения и сохраняет SHA — идентификатор соответствующего коммита Git. При установке или обновлении агент должен извлечь именно этот снимок кода, даже если основная ветка репозитория позднее изменилась.
Claude Code, Codex и GitHub Copilot переключались на указанный идентификатор, но затем не сравнивали фактический коммит рабочей копии с ожидаемым значением. Если владелец репозитория создавал основную ветку с именем, совпадающим с 40-значным хешем, Git мог разрешить неоднозначное имя как ссылку на ветку, а не как идентификатор объекта. Закреплённое значение в каталоге сохранялось, но агент получал другой код.
В Gemini CLI обход строился вокруг служебного имени FETCH_HEAD. Требуемый коммит загружался, после чего клиент переключался по этому имени без проверки результата. Основная ветка с тем же именем могла направить установку на подменённое содержимое.
Обе разновидности устраняет проверка фактического коммита после извлечения: агент должен отклонить плагин, если полученное значение не совпадает с закреплённым SHA. Исправление необходимо в самом клиенте, поскольку именно он разрешает ссылку Git и получает рабочую копию.
Для атаки нужен контроль над репозиторием уже установленного плагина либо над собственным плагином, ранее прошедшим проверку. Выполнение кода без дополнительного действия пользователя возможно при фоновом обновлении, но настройки источников и обновлений различаются, поэтому этот сценарий нельзя переносить на каждую конфигурацию четырёх продуктов.
Какие продукты получили исправление
- Claude Code: минимальная исправленная версия — 2.1.179. В публичном описании выпуска связь изменения с Plugin4Shell не раскрыта.
- OpenAI Codex: минимальная исправленная версия — 0.146.0. Клиент сравнивает фактический коммит с запрошенным SHA и отклоняет источник при несовпадении.
- GitHub Copilot: доступное исправление не заявлено. Риск сохраняется для подключённых каталогов на Bitbucket, собственных серверах Git и других площадках, допускающих проблемные имена ссылок.
- Gemini CLI: исправленная версия не объявлена, а выпуск обновления безопасности не планируется на фоне вывода продукта из эксплуатации. Статус возможной защиты корпоративных установок публично не уточнён.
Таким образом, два продукта получили исправление, а два остаются без него. Это матрица реакции поставщиков, но не оценка одинаковой вероятности компрометации: значение имеют происхождение каталога, площадка репозитория и режим получения обновлений.
Почему размещение на GitHub ограничивает основной сценарий
GitHub запрещает имена веток и тегов, похожие на полный хеш объекта, поэтому основной вариант с 40-значным именем на этой площадке ограничен. Bitbucket и собственные серверы Git могут допускать такие имена, а агенты позволяют подключать внешние каталоги и репозитории.
Проверка The Hacker News от 18 сентября показала, что плагины стандартных каталогов Claude Code и Copilot размещались на GitHub. Это уменьшает поверхность основного сценария, но не устраняет ошибку в агенте: при использовании стороннего каталога или корпоративного сервера Git риск возвращается. Ограничение GitHub также не закрывает отдельный вариант с FETCH_HEAD в Gemini CLI.
На момент этой проверки отдельный идентификатор CVE не был назначен, а сведений о применении Plugin4Shell в реальных атаках не было. Следовательно, раскрытие описывает подтверждённую техническую возможность, а не уже зафиксированную кампанию компрометации.
Как безопасно проверить установленные плагины
Пользователям Claude Code и Codex следует проверить версию клиента и обновиться как минимум до 2.1.179 и 0.146.0 соответственно. Опубликованные материалы не уточняют, обнаруживает ли обновлённый клиент плагин, который мог быть подменён до установки исправления, поэтому одного обновления недостаточно для проверки ранее загруженного содержимого.
- Составить перечень установленных плагинов, их каталогов и исходных репозиториев.
- Выделить источники на Bitbucket, собственных серверах Git и других площадках, где разрешены SHA-подобные имена веток.
- Сопоставить закреплённый SHA каждого плагина с фактическим коммитом локальной копии.
- Проверить журналы обновлений на неожиданную смену происхождения или содержимого плагина.
Воспроизводить подмену для проверки не требуется. При несовпадении значений плагин следует изолировать, сохранить журналы для расследования и получить чистую копию из доверенного репозитория.
Для GitHub Copilot до появления исправления оправдано ограничение автоматического получения плагинов из непроверенных внешних источников. Пользователям Gemini CLI необходимо учитывать прекращение поддержки продукта, а организациям с корпоративными лицензиями — отдельно запросить у Google сведения о защите своих установок.
Что остаётся неизвестным
Поставщики не выпустили общего бюллетеня с полными диапазонами затронутых версий, признаками компрометации и процедурой очистки ранее установленных плагинов. Не прояснено и то, получат ли корпоративные установки Gemini CLI отдельную защиту.
Подтверждённый статус остаётся следующим: Claude Code и Codex имеют обозначенные минимальные исправленные версии, GitHub Copilot — без объявленного исправления, а для Gemini CLI его выпуск не планируется. Дальнейшее развитие истории зависит от официальной позиции GitHub по Copilot и разъяснений Google о корпоративных установках Gemini CLI.
Читайте также:
Подпишитесь на рассылку
Получайте свежие новости Web3, AI и криптовалют прямо на вашу почту.