Исследователи обнаружили проблему в Visual Studio Code Marketplace, которая позволяла злоумышленникам повторно использовать имена ранее удаленных расширений.

Специалисты компании ReversingLabs, специализирующейся на безопасности цепочки поставок ПО, заметили уязвимость после обнаружения вредоносного расширения ahbanC.shiba, которое функционировало аналогично двум другим (ahban.shiba и ahban.cychelloworld), обнаруженным в марте 2025 года.

Все три библиотеки представляли собой загрузчики для получения PowerShell-полезной нагрузки с удаленного сервера, которая шифрует файлы в папке testShiba на рабочем столе жертвы и требует выкуп токенами Shiba Inu, инструктируя жертву отправить средства в неуказанный кошелек. То есть вредонос явно пока находится в разработке.

Однако исследователи решили копнуть глубже, так как имя нового вредоносного расширения (ahbanC.shiba) было практически идентично одному из выявленных ранее (ahban.shiba).

Стоит отметить, что каждое расширение VSCode  должно иметь уникальный ID, представляющий собой комбинацию имени издателя и названия расширения (то есть <publisher>.<name>). В изученном специалистами случае расширения отличались только именем издателя, тогда как фактическое название оставалось прежним.

Однако согласно документации Visual Studio Code, поле <name>, указанное в манифесте расширения, «должно быть полностью в нижнем регистре без пробелов», а также «должно быть уникальным» для магазина расширений.

Исследователи задались вопросом, как же тогда расширения ahban.shiba и ahbanC.shiba могли получить одинаковые имена, несмотря на правила? Оказалось, такой трюк возможен после удаления расширения из репозитория, но такое поведение неприменимо к сценариям, если автор сам отозвал расширение из публикации.

Причем исследователи отмечают, что еще в начале 2023 года обнаружили аналогичную возможность повторного использования имен удаленных библиотек в Python Package Index (PyPI).

Тогда выяснилось, что удаление пакета делает имя проекта «доступным любому пользователю PyPI», пока имена файлов дистрибутива (комбинация имени проекта, номера версии и типа дистрибутива) отличаются от тех, что использовались в уже удаленном дистрибутиве.

Однако в PyPI предусмотрено исключение, и имена могут стать недоступны, если исходно они использовались вредоносными пакетами. Как оказалось, Visual Studio Code не имеет аналогичных ограничений для предотвращения повторного использования имен вредоносных расширений.

«Обнаружение этой проблемы демонстрирует новую угрозу: имя любого удаленного расширения может использоваться повторно, причем кем угодно, — пишут эксперты. — Это означает, что если какое-то легитимное и очень популярное расширение будет удалено, его имя станет доступно для захвата».

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии