Критические уязвимости в расширениях Visual Studio Code: риск кражи локальных файлов и RCE

CyberSecureFox 🦊

Популярные расширения для 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: стандартизировать набор разрешённых расширений, внедрять контроль конфигураций, обучать сотрудников распознавать рискованные сценарии и регулярно пересматривать практики защиты. Чем раньше расширения будут включены в общую модель угроз, тем меньше шансов, что следующий уязвимый плагин станет причиной масштабного инцидента безопасности.

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.