Cyberbezpieczeństwo

Cognition udostępnia za darmo agentów do łatania PHP2Shell, Node.js i GitLaba

Cognition wypuściło Devin Vulnerability Fixes – darmowy plugin open source, który pomaga załatać podatności opisane w trzech najnowszych biuletynach bezpieczeństwa dotyczących krytycznych zagrożeń RCE. Jak opisuje MarkTechPost, firma zapakowała w niego proces naprawczy, którego używała wewnętrznie. Kod jest dostępny na GitHubie na licencji MIT.

Plugin to trzy umiejętności: fix-php-vuln, fix-node-vuln i fix-gitlab-vuln. Działają w Devinie, ale też w Claude Code, Codex, Cursorze, Factory Droid, GitHub Copilot, Gemini CLI, OpenCode i Windsurfie – wszędzie tam, gdzie agent potrafi czytać pliki SKILL.md. Wymagane są git, powłoka, Docker i dostęp do rejestru; instalacja przez npx skills potrzebuje Node.js w wersji 22.20 lub nowszej.

Jakie luki obejmuje

  • PHP2Shell (CVE-2026-109618 i CVE-2026-109619). Obie luki mają w CVSS v4.0 ocenę 9.2. Pierwsza to uszkodzenie pamięci po wyczerpaniu pamięci (OOM), druga pozwala, by przestarzały stan globalny z jednego żądania trafił do następnego. Według projektu PHP zagrożona jest każda instalacja obsługująca żądania webowe (cytuje to Sophos), a najwyższe ryzyko dotyczy mod_php. Poprawione wersje to 8.2.35, 8.3.36, 8.4.27 i 8.5.12. PHP 8.1 i starsze nie dostają wydań, tylko backporty źródłowe dla gałęzi 7.4, 8.0 i 8.1.
  • Node.js, wydanie z 21 października 2026. Łata 10 CVE, w tym 4 o wysokiej wadze. Najważniejsza, CVE-2026-111497, to zapis poza granicami bufora w dekoderze Brotli, który może prowadzić do RCE. Poprawki są w wersjach 22.23.4, 24.22.1 i 26.12.1. Node.js 20 i starsze są po końcu wsparcia i niczego nie dostaną.
  • GitLab CVE-2026-110264. Przepełnienie liczby całkowitej w kompilatorze wyrażeń regularnych pozwala na wykonanie kodu bez uwierzytelnienia. Ocena to CVSS 10.0, a podatne są GitLab CE/EE od wersji 7.0. CERT-EU określa tę lukę jako krytyczną. GitLab.com i GitLab Dedicated są już załatane, więc plugin dotyczy instalacji self-managed.

Jak to działa

Każda umiejętność przechodzi te same pięć kroków. Najpierw agent robi inwentaryzację tylko do odczytu: przeszukuje Dockerfile’e, obrazy bazowe, pakiety dystrybucji, CI, Helm, Terraform, Packer, Lambdy i narzędzia do zarządzania konfiguracją. Potem następuje bramka akceptacji – nic się nie zmienia, dopóki użytkownik nie wybierze repozytoriów, a ryzykowniejsze podbicia wersji minor lub major są zgłaszane na początku. Następnie agent sprawdza z oficjalnym źródłem każdy tag, digest, wersję pakietu i sumę kontrolną. Testy uruchamia na obecnej wersji, a potem w nowym obrazie produkcyjnym; regresja zatrzymuje proces. Na końcu powstaje jeden pull request na repozytorium, z wersjami, wynikami testów, różnicami w runtime, etykietą ryzyka i planem wycofania.

Plugin zna też typowe pułapki. Debian i Ubuntu backportują poprawki bez zmiany wersji upstream, więc php -v potrafi wprowadzać w błąd – poprawiony pakiet w Ubuntu 24.04 to 8.3.6-0ubuntu0.24.04.13. Obrazy przypięte po digeście wymagają nowego digestu, a zmiana require.php w Composerze niczego nie łata.

Instalacja w Devinie sprowadza się do wyszukania „Vulnerability Fixes” w Marketplace albo komendy devin plugins install CognitionAI/devin-marketplace#plugins/devin-vuln-fixes. Dla innych agentów: npx skills add CognitionAI/devin-vuln-fixes. W Claude Code służy do tego /plugin install vuln-fixes@cognition-skills. Potem można prosić zwykłym językiem albo użyć komend /fix-php-vuln, /fix-node-vuln i /fix-gitlab-vuln.

Czego nie wiadomo

Cognition nie publikuje żadnego benchmarku ani wskaźnika skuteczności napraw, więc o jakości poprawek przekonają się dopiero użytkownicy. MarkTechPost zwraca uwagę, że walidacja jest tak dobra, jak pokrycie testami w danym projekcie. Zarządzane środowiska uruchomieniowe, appliance’y i aplikacje Electron plugin jedynie oznacza, ale ich nie łata.

Nie jest to też konkurent Dependabota, Copilot Autofix czy Snyk Agent Fix – te narzędzia działają na zależnościach aplikacji i kodzie źródłowym. Plugin Cognition celuje w warstwę uruchomieniową: obrazy bazowe, pakiety systemowe i infrastrukturę jako kod. Różni się też podejściem: Dependabot po włączeniu sam otwiera PR-y, a tu przed jakąkolwiek zmianą jest etap akceptacji.