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 уже пропатчены.
Как устроен рабочий цикл навыка
Все три навыка построены по одной пятишаговой схеме:
- Инвентаризация только на чтение. Агент просматривает Dockerfile, базовые образы, пакеты дистрибутива, CI, Helm, Terraform, Packer, Lambda и средства управления конфигурацией.
- Точка подтверждения. Ничего не меняется, пока вы не выберете репозитории; рискованные минорные и мажорные обновления помечаются первыми.
- Проверенная цель. Каждый тег, digest, версия пакета и контрольная сумма сверяются с официальным источником до правки.
- Тесты до и после. Набор тестов прогоняется на текущей версии, затем внутри нового production-образа. Регрессия останавливает прогон.
- Один 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