Популярные расширения для Visual Studio Code, установленные суммарно более чем на 125 миллионов экземпляров, оказались уязвимы для атак, позволяющих похищать локальные файлы и выполнять произвольный код на машинах разработчиков. Исследование компании OX Security выявило проблемы в четырех широко используемых расширениях: Live Server, Code Runner, Markdown Preview Enhanced и Microsoft Live Preview.
Насколько опасны уязвимости расширений VS Code для бизнеса
Современные цепочки поставки ПО опираются на IDE и их плагины так же сильно, как на библиотеки и пакеты. Расширения Visual Studio Code получают доступ к файловой системе, запускают локальные HTTP-сервера и взаимодействуют с внешними сервисами. Это превращает их в полноценный элемент атаки на цепочку поставки (supply chain).
По оценке исследователей OX Security, одного уязвимого или вредоносного расширения достаточно, чтобы атакующий выполнил боковое перемещение внутри инфраструктуры и скомпрометировал организацию целиком. В контексте корпоративной разработки это означает риск утечки исходного кода, секретов (ключей API, токенов доступа), конфигураций CI/CD и других критичных артефактов.
Live Server (CVE-2025-65717): кража файлов через localhost без взаимодействия пользователя
Наиболее критичной стала уязвимость CVE-2025-65717 в расширении Live Server с оценкой 9,1 по шкале CVSS. Расширение поднимает локальный HTTP-сервер, обычно на localhost:5500, для предпросмотра веб-страниц. Проблема в том, как обрабатываются запросы с браузера к этому серверу.
Сценарий атаки выглядит так: злоумышленник убеждает разработчика перейти на специально подготовленный вредоносный сайт в момент, когда Live Server активен. Встроенный в страницу JavaScript направляет запросы к localhost:5500, извлекает файлы с машины жертвы и передаёт их на контролируемый домен. По сути, браузер становится «прокси» для утечки локальных файлов.
Ключевая проблема — отсутствие надёжной изоляции и проверок происхождения запросов (origin), что позволяет злоумышленнику использовать механизм exfiltration over localhost. На момент подготовки материала исправление для CVE-2025-65717 не выпущено.
Markdown Preview Enhanced (CVE-2025-65716): выполнение JavaScript из markdown-файла
В расширении Markdown Preview Enhanced обнаружена уязвимость CVE-2025-65716 с оценкой 8,8 по CVSS. Расширение поддерживает расширенный функционал предпросмотра markdown, включая встроенный HTML и скрипты. Исследователям удалось добиться выполнения произвольного JavaScript-кода при открытии специально сформированного markdown-файла.
Получив возможность запускать JavaScript в контексте расширения, атакующий может проводить перечисление локальных портов, обращаться к сервисам на localhost и инициировать утечку данных. Этот вектор особенно опасен в репозиториях с совместной разработкой, где под видом обычной документации может скрываться вредоносный файл. Патч для CVE-2025-65716 также пока отсутствует.
Code Runner (CVE-2025-65715): удалённое выполнение кода через настройки
Расширение Code Runner, предназначенное для быстрого запуска кода на разных языках, оказалось уязвимым к сценарию удалённого выполнения кода (RCE). Уязвимость CVE-2025-65715 получила оценку 7,8 по CVSS.
Чтобы воспользоваться багом, злоумышленнику достаточно с помощью фишинга или социальной инженерии убедить разработчика изменить файл settings.json Visual Studio Code, в котором хранятся настройки расширений. Неправильная или навязанная конфигурация позволяет атакующему подменить команду запуска и добиться выполнения произвольных команд на машине жертвы. Исправление для этой уязвимости на момент публикации не выпущено.
Microsoft Live Preview: исправленная уязвимость эксфильтрации файлов
Похожая проблема выявлена и в расширении Microsoft Live Preview. Как и в случае с Live Server, расширение использует локальный сервер для предпросмотра веб-страниц. Вредоносная страница в браузере могла отправлять JavaScript-запросы к localhost и извлекать конфиденциальные файлы с машины разработчика.
По информации исследователей, Microsoft уже устранила уязвимость в версии 0.4.16, выпущенной в сентябре 2025 года. Для проблемы не присвоен отдельный идентификатор CVE, однако характер уязвимости аналогичен: отсутствие должных ограничений на взаимодействие локального сервера с браузером.
Практические меры защиты разработчиков и компаний
Инцидент с уязвимостями расширений Visual Studio Code демонстрирует, что IDE следует рассматривать как высокоуровневый объект защиты, а не просто рабочий инструмент разработчика. Нарушение безопасности на этом уровне даёт атакующему прямой доступ к коду, секретам и внутренней инфраструктуре.
Рекомендуемые меры по снижению рисков
Исследователи OX Security рекомендуют:
— избегать использования непроверенных или навязанных конфигураций, особенно изменений в settings.json под влиянием инструкций из сторонних источников;
— регулярно проводить аудит расширений VS Code и удалять ненужные плагины, снижая площадь атаки;
— ограничивать входящие и исходящие подключения через локальный и сетевой файрвол, в том числе обращения браузера к localhost, если это возможно;
— своевременно обновлять расширения и сам Visual Studio Code, отслеживая публикации о новых уязвимостях;
— отключать или останавливать сервисы на localhost, когда они не используются, чтобы минимизировать окно возможностей для атакующих.
Плохо спроектированные или избыточно привилегированные расширения, равно как и откровенно вредоносные плагины, способны модифицировать файлы, исполнять код и обеспечивать полный захват рабочей станции разработчика. Достаточно одного клика по вредоносной ссылке или открытия зараженного репозитория, чтобы уязвимое расширение стало точкой входа в корпоративную сеть.
Организациям и отдельным разработчикам имеет смысл выстраивать политику безопасности вокруг Visual Studio Code и других IDE: стандартизировать набор разрешённых расширений, внедрять контроль конфигураций, обучать сотрудников распознавать рискованные сценарии и регулярно пересматривать практики защиты. Чем раньше расширения будут включены в общую модель угроз, тем меньше шансов, что следующий уязвимый плагин станет причиной масштабного инцидента безопасности.