Вредоносное расширение VS Code скрывало атаку в npm-зависимости
30 июня 2026 года было выявлено вредоносное расширение VS Code ascii-fetcher.ascii-fetcher. Его основная функциональность находилась не в точке входа расширения, а в транзитивной зависимости npm. Такой подход позволяет обходить проверки, которые преимущественно анализируют файл extension.js.
Вредоносная логика находилась в node_modules
Расширение выглядело безобидным. Код его точки входа был небольшим и не содержал явно подозрительного поведения. При этом вредоносный код находился в модуле node_modules/@jaymara/jsononifier.
Файл index.js этого модуля импортировал trigger.js. Он определял, должна ли выполняться вредоносная ветвь, после чего вызывал Executer.js. Такая структура отделяла видимую функциональность расширения от логики выполнения. Из-за этого ручной анализ исходного кода и поверхностное статическое сканирование становились менее эффективными.
Активация зависела от среды выполнения
Согласно отчету, выполнение контролировалось проверками anti-analysis. Вредоносная логика была настроена на активацию только в нормальной пользовательской среде Windows.
Такой механизм мог препятствовать появлению полезной нагрузки во время базового анализа или в средах, отличных от Windows. В результате поведение расширения могло отличаться в зависимости от условий, в которых оно запускалось.
Индикаторы и результаты поиска
С образцом были связаны несколько технических индикаторов:
- строка
xorkey123; - использование
Buffer.alloc; - комментарий со ссылкой на полезную нагрузку
calc.exe.
Эти артефакты вошли в кластер для ретроспективного поиска по локальным артефактам и истории сканирования. Дополнительных совпадений обнаружено не было. Это указывает на изолированный характер образца, а не на его принадлежность к более широкой кампании.
Зависимости расширений требуют отдельной проверки
Вредоносная зависимость была удалена из публичного реестра npm. Инцидент показывает риск доверия к точкам входа расширений или пакетам marketplace без проверки транзитивных зависимостей.
Фактическое поведение расширения VS Code может формироваться вложенными npm-модулями. При этом механизмы контроля выполнения способны скрывать полезную нагрузку во время базового анализа или при запуске в средах, отличных от Windows.
Выявить скрытое поведение помогло сочетание кросс-версионного анализа поведения и инспекции графа зависимостей.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



