У пустого пакета npm «-» обнаружили 700 тысяч загрузок

image-loader.svg

Эксперты Bleeping Computer обнаружили, что у пустого пакета npm »-» более 700 тысяч загрузок. Причем их количество все время возрастает с каждым днем. Вероятно, разработчики и пользователи его случайно устанавливают, когда ставят лишний пробел между «i» и »-» при установке флагов в нужных им пакетах с помощью пакетного менеджера npm.
Разработчик пустого пакета Дмитрий Паржицкий опубликовал его в реестре npm под версией 0.0.1 в тестовых целях год назад. Пакет не содержит функционального кода и не обновлялся после создания. Пакет содержит три файла:
tar tvf 0.0.1 / - 0.0.1.tgz
package/dist/index.js
package/package.json
package/README.md

Внутри файлов манифеста package.json и index.js в основном нет ничего интересного, только скелетный код.

mmcjkq85xkumrm-_mrtg9i08vsg.jpeg
Состав файл index.js и файла манифеста (package.json). Манифест включает в себя множество зависимостей разработки (devDependencies) и вызывает некоторые команды для компонента «ts-node», но это все. На данный момент это практически мертвый код.

В настоящее время пакет »-» используется (служит зависимостью) в 56 пакетах npm без понятного объяснения. У большинства из этих пакетов не более нескольких десятков загрузок в неделю.

Bleeping Computer считает, что, вероятно, пакет очень часто устанавливается случайно, когда кто-то запускает команды npm с терминала и допускает типографические ошибки. Например, в строке вместо «npm i somepackage» при расширенной установке пользователи пишут «npm i — someFlag somepackage». Эта опечатка приводит к тысячам установок пакета »-».

Вдобавок пакет может попасть по ошибке в качестве зависимости в файл package.json при его конфигурировании вручную пользователем.

Эксперты Bleeping Computer обнаружили в реестре npm другие аналогичные пакеты — i, g, install, D, и s. У них тоже тысячи загрузок в сутки и часть из них могли быть сделаны из-за опечаток при написании определенных параметров и ключей при установке нужных разработчикам пакетов npm.

Разработчик Мэтт Фриланд из Sonatype рассказал Bleeping Computer, что «npm может (и, возможно, должен) запрещать компоненты, имена которых совпадают с именами его команд». Фриланд пояснил, что после установки пакетов npm представляет обобщенное сообщение об успехе, такое как «добавлено 3 пакета и проверено 8 пакетов», вместо того, чтобы печатать точный список установленных пакетов. По его мнению, указание установленных пакетов в сообщении об успешном выполнении дало бы разработчикам шанс на самом деле обнаружить свои ошибки, а сейчас они это не видят.

Bleeping Computer советует разработчикам проявлять осторожность при вводе команд npm в терминале, особенно при использовании флагов и ключей и проверять зависимости в своих пакетах от загадочных и ненужных пакетов и удалять их.

В марте 2020 года пакетный менеджер npm стал частью GitHub, которой владеет Microsoft. Публичный реестр npm после интеграции с GitHub остался доступен и бесплатен.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Вы устанавливали пустой пакет npm »-»?

3.57% Да 1

67.86% Нет 19

32.14% Хм, нужно проверить 9

Проголосовали 28 пользователей.

Воздержались 7 пользователей.

© Habrahabr.ru