Cognition выпустила открытый плагин Devin Vulnerability Fixes: три навыка ИИ-агента закрывают PHP2Shell, Node.js и GitLab

Cognition выложила в открытый доступ Devin Vulnerability Fixes — набор из трёх навыков (Agent Skills) для ИИ-агентов, которые находят и закрывают уязвимости в PHP, Node.js и self-managed GitLab. Лицензия MIT, плагин бесплатный. По сути Cognition упаковала во внутренний инструмент тот порядок действий, которым сама чинила эти дыры: инвентаризация, подтверждение, патч, тесты, один pull request на репозиторий.

Повод конкретный: три критических бюллетеня о remote code execution (RCE), вышедших почти одновременно. Первый — PHP2Shell, второй — октябрьский релиз безопасности Node.js от 21 октября 2026 года, третий — ошибка в self-managed GitLab с оценкой CVSS 10.0.

Что именно закрывают три навыка

Навыки называются fix-php-vuln, fix-node-vuln и fix-gitlab-vuln. Разбираем каждый.

PHP2Shell (CVE-2026-109618, CVE-2026-109619). Обе уязвимости PHP оценивает в CVSS v4.0 9.2. Первая приводит к повреждению памяти после исчерпания памяти (out-of-memory), вторая позволяет устаревшему глобальному состоянию одного запроса попасть в следующий. PHP указывает, что рискован любой веб-серверный сценарий, а самый высокий риск — у mod_php. Исправленные версии: 8.2.35, 8.3.36, 8.4.27 и 8.5.12. Для PHP 8.1 и старше релизов нет — только бэкпорты в исходниках для 7.4, 8.0 и 8.1.

Релиз Node.js от октября 2026. Закрывает 10 CVE, четыре из них уровня High. Главная — CVE-2026-111497: запись за границы буфера (out-of-bounds write) в декодере Brotli, которая может привести к RCE. Исправленные версии — 22.23.4, 24.22.1 и 26.12.1. Ветка Node.js 20 и старше уже end-of-life, исправлений для неё не будет.

GitLab CVE-2026-110264. Целочисленное переполнение в компиляторе регулярных выражений даёт неаутентифицированное выполнение кода. Затронуты GitLab CE/EE начиная с версии 7.0, оценка — CVSS 10.0. Облачный GitLab.com и GitLab Dedicated уже пропатчены.

Как устроен рабочий цикл навыка

Все три навыка построены по одной пятишаговой схеме:

  1. Инвентаризация только на чтение. Агент просматривает Dockerfile, базовые образы, пакеты дистрибутива, CI, Helm, Terraform, Packer, Lambda и средства управления конфигурацией.
  2. Точка подтверждения. Ничего не меняется, пока вы не выберете репозитории; рискованные минорные и мажорные обновления помечаются первыми.
  3. Проверенная цель. Каждый тег, digest, версия пакета и контрольная сумма сверяются с официальным источником до правки.
  4. Тесты до и после. Набор тестов прогоняется на текущей версии, затем внутри нового production-образа. Регрессия останавливает прогон.
  5. Один PR на репозиторий. В нём версии, результаты тестов, диффы рантайма, метка риска и план отката.

В навыки зашиты и известные ловушки патчинга. Debian и Ubuntu переносят исправления в свои сборки, не меняя версию upstream, поэтому вывод php -v может вводить в заблуждение. Исправленный пакет для Ubuntu 24.04 — 8.3.6-0ubuntu0.24.04.13. Образы, закреплённые по digest, требуют нового digest. А правка require.php в Composer не патчит ничего.

Где запускать и как поставить

Плагин работает в Devin и в любом кодинг-агенте, который читает файлы SKILL.md: Claude Code, Codex, Cursor, Factory Droid, GitHub Copilot, Gemini CLI, OpenCode, Windsurf. Нужны git, shell, Docker и доступ к registry. Установка через npx skills требует Node.js 22.20 или новее.

В Devin: Customize → Plugins → Browse Marketplace, ищем Vulnerability Fixes. Через Devin CLI:

devin plugins install CognitionAI/devin-marketplace#plugins/devin-vuln-fixes

Для остальных агентов:

npx skills add CognitionAI/devin-vuln-fixes

В Claude Code можно добавить маркетплейс и выполнить /plugin install vuln-fixes@cognition-skills. Дальше достаточно попросить обычным языком — «исправь уязвимость в PHP» — или вызвать слэш-команду: /fix-php-vuln, /fix-node-vuln, /fix-gitlab-vuln.

Чем это отличается от Dependabot и Snyk

Инструменты решают смежные, но разные задачи. Dependabot security updates правит уязвимые зависимости и GitHub Actions в манифестах и lock-файлах, PR открывает автоматически, без предварительного подтверждения. GitHub Copilot Autofix работает с алертами code scanning и предлагает правки кода в репозитории. Snyk Agent Fix чинит находки Snyk Code в локальных файлах.

Плагин Cognition бьёт по другому слою — рантайму: базовые образы, пакеты ОС и infrastructure-as-code. Отсюда и главное ограничение: опубликованного бенчмарка исправлений и числа fix-rate у плагина нет. Качество проверки равно качеству ваших тестов. Managed-рантаймы, аппаратные appliance и приложения на Electron навык только помечает, но не патчит.

Для админа, который держит парк на Debian и Ubuntu, это ещё и напоминание: проверять версию пакета нужно по сборке дистрибутива, а не по выводу php -v. Если у вас остались PHP 8.1 и старше или Node.js 20, апгрейд обязателен — исправлений для них не будет. Подробнее о самой PHP2Shell мы писали в материале про исправления для Ubuntu, а о том, как оценивать пользу ИИ-агентов в защите инфраструктуры, — в разборе Agentic FAITH от Cisco. Если же вы запускаете такие агенты у себя, стоит заранее подумать об изоляции: мы разбирали sandbox-runtime для ИИ-агентов на уровне ОС.

Частые вопросы

Кого касается плагин?

Тех, кто держит PHP, Node.js или self-managed GitLab и готов отдать патчинг ИИ-агенту. Облачные GitLab.com и GitLab Dedicated уже пропатчены вендором.

Плагин действительно бесплатный?

Да. Исходники на GitHub под лицензией MIT, на странице продукта Cognition он указан как бесплатный и открытый.

Нужен ли Devin, чтобы им пользоваться?

Нет. Подойдёт любой агент, читающий SKILL.md: Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Windsurf, Factory Droid.

Что нужно установить на машину?

git, shell, Docker и доступ к registry. Для установки через npx skills — Node.js 22.20 или новее.

Плагин сам вносит изменения в репозиторий?

Нет. Сначала идёт инвентаризация только на чтение и точка подтверждения, где вы выбираете репозитории. Только после этого агент готовит один PR на репозиторий.

Как понять, что PHP пропатчен, если php -v показывает старую версию?

Смотреть на версию пакета дистрибутива. Для Ubuntu 24.04 исправленная сборка — 8.3.6-0ubuntu0.24.04.13. Debian и Ubuntu переносят фиксы без смены upstream-версии.

Есть ли гарантия, что уязвимость будет закрыта?

Нет. Опубликованного бенчмарка нет, а проверка опирается на ваши тесты до и после правки. Слабый набор тестов — слабая гарантия.

Что делать, если у меня PHP 8.1 или Node.js 20?

Обновляться на поддерживаемую ветку. Для PHP 8.1 и старше релизов нет, только бэкпорты в исходниках для 7.4, 8.0 и 8.1; Node.js 20 и старше — end-of-life без исправлений.

Патчит ли плагин managed-рантаймы и appliance?

Нет, такие случаи он только помечает. Правки касаются Dockerfile, образов, пакетов дистрибутива, CI, Helm, Terraform и управления конфигурацией.

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