Разработчики, использующие открытые каталоги расширений для интегрированных сред, вновь оказались под ударом целенаправленной атаки на цепочку поставок. Кампания GlassWorm, нацеленная на маркетплейс Open VSX, перешла в новую фазу: аналитики зафиксировали очередной кластер из 73 поддельных расширений, которые имитируют популярные модули, но при первом появлении не содержат опасного кода. Такой класс угроз - так называемые спящие расширения (англ. sleeper extensions, то есть изначально безвредные дополнения, которые позже обновляются до вредоносных) - особенно трудно выявить на стадии публикации.
Описание
Согласно данным, полученным от компании Socket, занимающейся безопасностью цепочек поставок, первые следы новой волны активности появились ещё в апреле 2026 года. Злоумышленники создавали свежие учётные записи на GitHub с одним-двумя публичными репозиториями, причём один из репозиториев всегда оказывался пустым и назывался строкой из восьми символов. Затем от имени этих учётных записей в каталог Open VSX загружались расширения, внешне практически неотличимые от легитимных аналогов.
Спящие расширения как тактика закрепления
Идея спящих расширений проста: угроза публикует безобидную копию популярного модуля, набирает некоторое количество установок и доверия, а затем через механизм штатных обновлений внедряет вредоносный код. К моменту активации такие расширения уже имеют положительную репутацию среди пользователей. Из 73 новых поддельных расширений, по оценкам Socket, как минимум шесть уже были обновлены и начали доставлять вредоносную полезную нагрузку. Остальные с высокой вероятностью также являются спящими либо подозрительными, и их количество может вырасти по мере появления новых версий.
Характерный пример - расширение Emotionkyoseparate.turkish-language-pack, опубликованное неизвестным издателем. Оно практически полностью копирует официальный языковой пакет MS-CEINTL.vscode-language-pack-tr от Microsoft. Те же иконка глобуса, аналогичное название, такое же описание и даже скопированный файл README на турецком языке. Единственные отличия - другой издатель и уникальный идентификатор, а также значительно меньшее число загрузок (150 тысяч против нескольких десятков). Для беглого взгляда разница незаметна, что и составляет основу социальной инженерии этой атаки.
Техника доставки: от простого внедрения к многоканальной схеме
Ранее в рамках кампании GlassWorm злоумышленники помещали вредоносный загрузчик непосредственно в код расширения или использовали механизмы extensionPack и extensionDependencies для транзитивной установки опасных компонентов. Теперь же схема стала сложнее. В свежем кластере расширение выступает лишь тонким загрузчиком, а вся опасная логика вынесена за пределы исходного кода, что затрудняет обнаружение инструментами статического анализа.
Один из вариантов реализации - встраивание нативного бинарного модуля. Socket [сообщила] в подробном разборе, что в расширении boulderzitunnel.vscode-buddies код активации просто загружает платформозависимый файл (например, win.node или mac.node) и вызывает функцию install(). Вся дальнейшая работа - загрузка .vsix-пакета с GitHub и его установка в несколько редакторов (VS Code, Cursor, Windsurf) - выполняется внутри этого бинарника. Исходный JavaScript, который видит автоматический анализатор, не содержит никакой вредоносной активности.
Другой вариант полностью реализован в JavaScript, но код сильно обфусцирован. Расширение cubedivervolt.html-code-validate при активации декодирует строку, получает ссылку на GitHub-релиз вредоносного .vsix-файла и устанавливает его через команды --install-extension. При этом используются зашифрованные резервные URL, которые расшифровываются уже в рантайме. Такой подход позволяет обойти большинство проверок на этапе публикации.
Кому угрожает опасность
Атака направлена в первую очередь на разработчиков, которые используют маркетплейсы расширений для VS Code, Cursor, Windsurf и других совместимых сред. Поскольку Open VSX является альтернативным каталогом, популярным среди пользователей открытого ПО, автоматическая установка расширений из этой площадки происходит без дополнительного контроля. Злоумышленники уже не впервые выбирают Open VSX как канал распространения: ранее в марте 2026 года Socket документировал 72 вредоносных расширения, связанных с той же кампанией.
Последствия компрометации рабочей среды разработчика могут быть критическими: от кражи учётных данных и ключей доступа до внедрения бэкдоров в код коммерческих продуктов. Спящие расширения особенно опасны тем, что пользователь устанавливает якобы надёжный модуль, а через несколько дней или недель он превращается в загрузчик вредоносного ПО. Механизм обновления в IDE происходит автоматически, поэтому многие даже не замечают момента заражения.
Как защититься
Специалисты рекомендуют обращать внимание на издателя расширения: если он неизвестен и имеет мало публичных репозиториев, а само расширение скопировано с официального источника, лучше воздержаться от установки. Полезно также проверять количество загрузок и дату первой публикации. Компания Socket уже пометила все выявленные расширения на своей странице отслеживания кампании и рекомендует пользователям Open VSX проверить список установленных дополнений на предмет неожиданных обновлений.
Текущая волна атак демонстрирует, что создатели GlassWorm продолжают совершенствовать методы обхода безопасности. Перенос критической логики из исходного кода в бинарные модули или обфусцированные строки делает статический анализ малоэффективным. Разработчикам стоит рассматривать каждое новое расширение из открытых каталогов как потенциальный вектор атаки, пока сообщество не выработает более надёжные механизмы верификации издателей.
Индикаторы компрометации
GitHub Payload Hosting
- github.com/ColossusQuailPray/oiegjqde
- github.com/francesca898/dqwffqw
- github.com/SquadMagistrate10/wnxtgkih
SHA256
- 1b62b7c2ed7cc296ce821f977ef7b22bae59ef1dcdb9a34ae19467ee39bcf168
- 4ebfe8f66ca7e9751060b3301b5e8838d6017593cdae748541de83bfa28183bd
- 97c275e3406ad6576529f41604ad138c5bdc4297d195bf61b049e14f6b30adfd
Malicious Extensions
- boulderzitunnel.vscode-buddies
- cubedivervolt.html-code-validate
- keyacrosslaud.auto-loop-for-antigravity
- krundoven.ironplc-fast-hub
- outsidestormcommand.monochromator-theme
- winnerdomain17.version-lens-tool
Sleeper Extensions
- archchainturn.twinny-ai-assist
- breluven.html-smart-suite
- brenaven.cursor-rich-helper
- brixmundo.eca-easy-tool
- brixovik.es7-quick-hub
- carveltstone.chatbuddy-auto-suite
- closedtierenchant.vscode-awesome-icons
- countrepresent49.code-image-preview
- dalsoven.intellij-live-pilot
- dalsovik.dbclient-quick-suite
- draconzal.phpstan-easy-hub
- dranaven.flask-live-craft
- drovenko.data-live-suite
- emotionkyoseparate.turkish-language-pack
- epichipporedeem.prettier-eslint-formatter
- faldenko.explorer-auto-hub
- forkelbat.supersigil-rich-hub
- frelovin.gitpod-deep-helper
- fyltroven.gitchat-fast-tool
- gastholve.shell-pro-kit
- goltikov.auto-rich-forge
- grisaven.markdown-live-kit
- gronarin.auto-super-kit
- grozdarov.jinjahtml-easy-studio
- haelthorn.fractal-fast-studio
- karnenko.cursorless-pro-pilot
- karnikov.better-rich-studio
- keltarin.android-deep-hub
- krosarin.npm-fast-studio
- krosaven.dot-live-forge
- krosovik.laravel-quick-pilot
- kuldaran.search-smart-forge
- lairinspectortrek70.todo-highlighter
- marabenov.graphql-super-craft
- meldarin.biome-live-tool
- meltovik.bookmark-rich-tool
- meltuven.graphql-pro-tool
- mrekelid.manpages-fast-kit
- peldravix.rpgiv2free-live-tool
- pranlokev.topmodel-fast-suite
- prednovik.php-super-pilot
- seldovik.cmake-smart-pilot
- shinypy.pycode-formatter
- shiverov.open-smart-suite
- spacesalamanderhook.italian-language-pack
- spikearshock.csv-rainbow
- sremekov.javascriptsnippets-rich-craft
- sremovik.dendron-deep-hub
- sremuven.beautify-super-lens
- stadiumgripier.vscode-onedark-theme
- stelbavik.hledger-fast-tool
- superneentrance.peacock-colors
- syndakove.todo4vcode-quick-suite
- tagovich.zener-pro-craft
- thunderprosecutor.autopep8-formatter
- tormekov.htmlmustache-fast-craft
- tossbers.browser-open-tool
- tralarin.firefox-rich-lens
- tralaven.c-easy-tool
- trenarin.autodocstring-auto-studio
- trikarin.database-super-tool
- veldekov.csv-pro-suite
- veltarik.duplicate-fast-helper
- vendrakos.rumdl-pro-kit
- vornovin.ionic-easy-kit
- weldforick.brightscript-pro-kit
- wildlightregain.oxc-lint-format