JetBrains закрыла в Junie CLI уязвимость, из-за которой посторонний проект мог заставить инструмент выполнить чужой код. Проблема получила идентификатор CVE-2026-111091 и оценку 7.8 по шкале CVSS (общепринятая система оценки уязвимостей) - это высокий уровень по классификации самого вендора. Речь идёт о консольном ассистенте для разработчиков, который читает настройки MCP-серверов. MCP-сервер - это компонент, подключаемый к ИИ-помощнику по протоколу Model Context Protocol и дающий тому доступ к внешним инструментам. До версии 26.8.3 такие настройки принимались на веру, даже если автор проекта незнаком.
CVE-2026-111091 и настройки MCP в Junie CLI
Механизм относят к категории CWE-829 - включение функциональности из недоверенной сферы управления. Junie CLI брала описание MCP-сервера из файлов проекта и запускала то, что в описании указано. Происхождение этих данных инструмент не проверял. В итоге проект, полученный от постороннего человека, получал возможность выполнить команды на машине разработчика.
Вектор атаки в оценке вендора помечен как локальный. Злоумышленнику не нужны ни учётная запись в системе, ни особые права. При этом без участия человека атака не сработает: жертва должна открыть проект и согласиться на работу с его настройками. Такое сочетание условий типично для инструментов разработчика. Клонирование чужих репозиториев, разбор тестовых примеров и просмотр присланного кода - повседневная практика, а не редкий сценарий.
Последствия затрагивают сразу три свойства системы: конфиденциальность, целостность и доступность, и все три отмечены как высокие. Успешная эксплуатация грозит утечкой исходного кода и ключей, порчей файлов и остановкой работы инструмента. На личной машине разработчика обычно хранится самое ценное: токены доступа к репозиториям, учётные данные облачных сред, копии внутренних сервисов.
Конфигурации вспомогательных серверов всё чаще лежат прямо в проекте, рядом с кодом. Такой файл путешествует вместе с репозиторием, попадает в архивы, форки и учебные примеры. Проверить его глазами способен не каждый, а согласие на запуск ассистент обычно запрашивает один раз. Сочетание удобства и доверия к чужому коду и создаёт условия для подобных уязвимостей.
Затронуты все, кто работает с Junie CLI версий ниже 26.8.3, - от отдельных специалистов до команд, где ассистент встроен в ежедневный цикл разработки. Отдельного сервера для атаки не требуется, поэтому проблему нельзя закрыть сетевыми средствами защиты на периметре.
Исправление вышло в Junie CLI 26.8.3, более ранние сборки остаются уязвимыми. Проблему нашёл исследователь под ником syaifmax, в трекере вендора она зарегистрирована как JUNIE-3056. JetBrains внесла её в перечень закрытых вопросов безопасности на своём сайте. Национальная база уязвимостей США (NVD) запись пока не обогатила и собственную оценку не публиковала. Единственный рейтинг на сегодня исходит от вендора, поэтому расхождение с независимой оценкой не исключено.
Обновление до 26.8.3 и более новых сборок закрывает проблему. Перед открытием проекта из внешнего источника стоит просмотреть его настройки MCP и убедиться, что среди них нет незнакомых серверов и команд. Если чужой проект нужен только для чтения, разумно запускать его без подключения ассистента к внешним инструментам. В корпоративной среде снизить риск поможет ограничение сетевого доступа на рабочих машинах разработчиков.
Ассистенты с доступом к файловой системе и внешним сервисам расширяют поверхность атаки быстрее, чем специалисты успевают привыкнуть к новым рискам. Конфигурация, пришедшая вместе с чужим проектом, мало чем отличается от исполняемого файла, скачанного из непроверенного источника.
Ссылки
- https://nvd.nist.gov/vuln/detail/cve-2026-111091
- https://www.jetbrains.com/privacy-security/issues-fixed/?product=Junie+CLI