URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 119243
[ Назад ]

Исходное сообщение
"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."

Отправлено opennews , 16-Дек-19 12:57 
В обновлении пакетного менеджера NPM 6.13.4, входящего в поставку Node.js и применяемого для распространения модулей на языке JavaScript, устранены три уязвимости (CVE-2019-16775, CVE-2019-16776 и CVE-2019-16777), позволяющие модифицировать или перзаписать произвольные системные файлы при установке пакета, подготовленного злоумышленником. В качестве обходного пути защиты может быть установка с опцией "--ignore-scripts", запрещающей выполнение встроенных пакеты обработчиков. Разработчики NPM проанализирвали имеющиеся в репозитории пакеты и не нашли следов использования  выявленных проблем для совершения атак...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=52043


Содержание

Сообщения в этом обсуждении
"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено JL2001 , 16-Дек-19 12:57 
ненене, репозиториям мы доверяем! и без запуска установочных скриптов в пакетах никак не возможно устанавливать пакеты!! только так!!!
а то иначе получатся какие-то простигоспади rpm-юнит-файлы и installd, а этого мы допустить никак не можем!!

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 13:04 
Как будто в .rpm нет скриптов.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено JL2001 , 16-Дек-19 16:00 
> Как будто в .rpm нет скриптов.

как будто это что-то хорошее

лучше бы возразили что в юнитфайлах иногда таки не удаётся без скриптов


"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 16:37 
> как будто это что-то хорошее

как будто это что-то плохое


"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Crazy Alex , 16-Дек-19 17:27 
Ну да, доверяем, а что? Правда, между репозиториями и NPM всё-таки, видать, есть какое-то различие - что-то я о зловредах в дебиане или там центоси не слышал.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 17:55 
Нет антивируса - нет вируса. Пока гром не грянет мужик не узнает про существование грома. Незнание - сила.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено JL2001 , 16-Дек-19 20:22 
> Ну да, доверяем, а что? Правда, между репозиториями и NPM всё-таки, видать,
> есть какое-то различие - что-то я о зловредах в дебиане или
> там центоси не слышал.

если вы не видете суслика, это всего лишь значит, что он хорошо маскируется
оглянитесь вокруг - некоторые люди злы и порочны, вам хватит ровно одного
такого, который скажет мантейнеру, что он знает где учится его маленькая дочка


"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Грусть , 16-Дек-19 13:05 
Ха, а то, что эти скрипты зачастую блоб не пойми откуда скачивают - это уже мелочи :)

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 15:08 
Блоб не пойми откуда ничем не хуже обычного JS-кода не пойми откуда. И то и то требует доверия к разработчику модуля. На этом доверии всё и строится

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Грусть , 16-Дек-19 13:07 
Скриптов быть не должно. Если надо что-то заскриптовать, это должно делаться при запуске сервиса или ином использовании пакета. Как IPS в солярке или как всё в nixos.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено ЧЯДНТ , 16-Дек-19 13:53 
Сейчас придут адепты GNU Guix.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено JL2001 , 16-Дек-19 16:04 
> Сейчас придут адепты GNU Guix.

и что они раскажут?


"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 21:24 
Что всё есть guile.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 14:32 
В npm не только скрипты на JS, но и нативные модули/библиотеки, которым требуется компиляция

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Тоска , 16-Дек-19 14:37 
Поэтому они и тянут блобы. NPM не может заменить системный пакетный менеджер. А они пытается. Результат - на лице.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 14:51 
Пытается заменить только при глобальной установке с `-g`, и тут я с вами в основном согласен.

Но основной кейс иcпользования npm - локальная установка в каталог проекта в `node_modules` и локальный bin в `node_modules/.bin` и тут пакетный менеджер никак не может быть заменой с учётом транзитивных зависимостей разных версий в пределах одного проекта, а это распространённое явление при использовании "больших" зависимостей типа реакта, бабеля и т.п.


"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено JL2001 , 16-Дек-19 16:08 
> Поэтому они и тянут блобы. NPM не может заменить системный пакетный менеджер.
> А они пытается. Результат - на лице.

результат не потому
а потому что при запуске чего-то есть шанс что это чего-то начнёт себя вести нехорошо
тоесть и запуск установленной программы, и её установка, и сборка её бинарного пакета должны проходить в ограниченых окружениях


"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 13:23 
Запускать npm с sudo - это выстрел в ногу.
Node с npm должны быть установлены только в хомяке (через nvm).
Никогда не понимал установку ноды из репозиториев.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено ЧЯДНТ , 16-Дек-19 13:36 
... в контейнере на вриталке без доступа к локальной сети

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Антон , 16-Дек-19 14:25 
это скорее не проблема npm, а sudo, который слишком много позволяет

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено JL2001 , 16-Дек-19 16:01 
> Запускать npm с sudo - это выстрел в ногу.
> Node с npm должны быть установлены только в хомяке (через nvm).
> Никогда не понимал установку ноды из репозиториев.

а rpm с sudo значит можно?


"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 16:20 
NPM та еще помойка, оф.репы как-то больше вызывают доверия.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено JL2001 , 16-Дек-19 18:25 
> NPM та еще помойка, оф.репы как-то больше вызывают доверия.

но почему? люди и там и там - уходят проверенные и приходят новые
а ещё у них время выплаты кредита тикает


"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 21:27 
В npm отсутствует вообще какой-либо контроль приходящих людей. В дистрибутивах с этим получше, там доказать квалификацию нужно, и, зачастую, личность подтвердить. Все майнтейнеры Debian, скажем, известны поимённо, а что за васян очередной лефтпад в npm залил — поди разберись.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 18:58 
Какая разница? Вы полагаете у юзера мало прав? У типичного юзер 99% прав рута и это хорошо если судо ещё не используется для всего, с судо и последний процент исчезает.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 13:46 
Если к npm-пакетам нет доверия, так что нельзя позволять им работать с произвольными файлами в установочных скриптах, значит не следует вообще устанавливать npm-пакеты.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено JL2001 , 16-Дек-19 16:03 
> Если к npm-пакетам нет доверия, так что нельзя позволять им работать с
> произвольными файлами в установочных скриптах, значит не следует вообще устанавливать
> npm-пакеты.

а как вы вообще определяете каким пакетам доверять, а каким - нет?
зы: из зала ещё подсказывают, что скрипты при установке можно и из сети скачать


"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 16:38 
> а как вы вообще определяете каким пакетам доверять, а каким - нет?

По исходному коду


"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 16:49 
Часть пакетов написана на TypeScript и перед публикацией в npm транспилится в JS и минифицируется. Такой транспилированный код вы тоже проверяете на соответствие TypeScript-коду?
Не говоря о том, что в npm можно залить совсем не тот код, который лежит в VCS.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено К.О. , 16-Дек-19 21:29 
Если проверить нельзя, значит, и доверять такому коду нельзя.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 17-Дек-19 23:08 
транспишяция должна быть частью npm, а не говноскриптами. Скажу больше, по-моему node должен уметь в typescript без транспиляции, нативно. Как и JS-движки. Это позволит им лучше оптимизировать код.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено JL2001 , 16-Дек-19 20:14 
>> а как вы вообще определяете каким пакетам доверять, а каким - нет?
> По исходному коду

серьёзно?
можно я буду Вам поклоняться, мой Бог? Всезнающий и Всепонимающий


"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено anonymous , 16-Дек-19 14:40 
Какой-то идиотизм. Очевидное же решение - распаковать файлы внутри firejail, там же скомпилять, а потом готовое скопировать, при попытке переписать существующий файл - откат копирования и фейл. Давно уже все необходимые утилиты существуют, почему дистрописатели не используют их?

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 14:57 
Это молодая система, подождите...

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 16:32 
Сам npm cli не сказать что быстро развивается в плане новых фич. Не думаю, что сейчас есть ресурсы на это, особенно если учесть, что npm кроссплатформенный.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 16:39 
Потому что firejail не обязан быть везде установлен.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 17:46 
мало того, что у них какие то пакеты для жыеса устанавливаются в обход системного менеджера, так еще и сам установщик устанавливается в обход установщика?

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено JL2001 , 16-Дек-19 20:18 
> Потому что firejail не обязан быть везде установлен.

а жаль


"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено gogo , 16-Дек-19 23:38 
Какой jail? Какого перца тащить в систему все говно без разбору, а потом разбирать, что за говно притащили?..

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 16:12 
Помнити лифпад!

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 16:21 
Ловите С89-хипстера!

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Аноним , 16-Дек-19 17:58 
Может кто-то уже догадается сделать npm с пакетами проверенными вручную. Да даже за деньги. Red Hat IBM NPM Registry Cloud Enterprise Services. Идею дарю.

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено gogo , 16-Дек-19 23:35 
Наверняка кто-то пробовал. И наверняка они разорились на мятно-имбирных таблетках от тошноты для проверяющих...

"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено Michael Shigorin , 16-Дек-19 22:42 
Шо, опять?!

// серебряные пули, небитые, некрашеные, пользовалась девушка...


"Уязвимость в NPM, позволяющая изменить произвольные файлы пр..."
Отправлено gogo , 16-Дек-19 23:33 
Проблема ведь не в том, что скрипт пакета может что-то злонамеренно переписать.
Проблема в том, что такую возможность рассматривают как вполне вероятную и пытаются от неё защититься!
Сравнивая с .rpm, КАК можно пользоваться системой, где вероятность распространения злонамеренного кода _теоретически_ НЕ может быть сведена к нулю?