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

Исходное сообщение
"Уязвимость, позволявшая выпустить обновление для любого пакета в репозитории NPM"

Отправлено opennews , 16-Ноя-21 13:52 
Компания GitHub раскрыла информацию о двух инцидентах в инфраструктуре репозитория пакетов NPM.  2 ноября сторонние исследователи безопасности (Kajetan Grzybowski и Maciej Piechota) в рамках программы Bug Bounty сообщили о наличии в репозитории NPM уязвимости, позволяющей опубликовать новую версию любого пакета, используя для этого неавторизированную учётную запись. Проблема была устранена через 6 часов после появления информации об уязвимости...

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


Содержание

Сообщения в этом обсуждении
"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Какаянахренразница , 16-Ноя-21 13:52 
> уязвимости, позволяющей опубликовать новую версию любого пакета

Снова, говорите? Нет, такого ещё не было. Никогда ещё $@#&%© не был таким полным.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено A.Stahl , 16-Ноя-21 14:00 
>Никогда ещё $@#&%© не был таким полным.

О чём ты? Он всегда таким был.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено kusb , 16-Ноя-21 15:24 
А по моему нет, он заметно пополнел. Любая версия любого пакета.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Жироватт , 16-Ноя-21 16:12 
(Хакер и солонка)^(90% прода на этой хрени)

В JS просто последние годы начали крутится привлекательные бабки - от него так просто с учётом всего стека уже не отказаться, так что такие уязвимости будут всплывать регулярно. Да, и такие полные. Смиритесь. Даже в хрустике - дело-то в самом подходе к формированию environment.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено А где же каменты , 16-Ноя-21 13:53 
Что-то NPM часто светиться в новостях начал, никогда такого не было и вот опять!

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено QwertyReg , 16-Ноя-21 14:10 
Нашли дыру в NPM: никогда такого не было и вот опять! ужас! кошмар! веб-макаки!

Нашли дыру в ядре Linux: это другое! смотрите, как здорово, ищут, исправляют!


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 16-Ноя-21 14:21 
Не веб-макаки, а копирасты.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено kusb , 16-Ноя-21 14:33 
Уязвимости есть много где, почти везде в программах, IT состоит из дыр, но NPM - зачастило.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Корец , 16-Ноя-21 14:47 
Сравни частоту новостей про то и то. И это я ещё не предлагаю сравнить нужность того и другого.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 16-Ноя-21 14:52 
Но вообще это насколько я понимаю это дыра в github, который сделал сервис автопубликации в npm из git

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Онаним , 16-Ноя-21 21:25 
Искатели уязвимостей внезапно обнаружили в уязвимостях NPM.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено BratishkaErik , 16-Ноя-21 14:13 
> GitHub утверждает, что следов совершения атак с использованием данной уязвимости с сентября 2020 года не зафиксировано.

Ну–ну! https://www.opennet.ru/opennews/art.shtml?num=56104


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 16-Ноя-21 19:12 
Вынепонимаетеэтодругое!

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено yet another anonymous , 16-Ноя-21 14:30 
Проблема не столько в инфраструктуре, сколько в самой концепции NPM: "мы за вас будем и управлять всей структурой пакетов, и отгрузим вам то, что вам нужно по своему усмотрению, ни о чём не заботьтесь". Реальный профит либо в рекламе, либо в коллекции информации.

На тех же принципах сделали r..st. И пытаются протащить это же в C++ modules.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Enamel , 16-Ноя-21 14:45 
То ли дело репозитории дистров линукса, вот там-то точно всё хорошо, ведь мейнтейнеры святые люди.

Сама по себе концепция репозиториев - замечательно.
ЯП без дефолт менеджера - плохой язык. Модули в C++ - чудесно, текущая система с препроцессором - мрак. Но пока на них перейдут, будет уже какой-нибудь 2030.

А npm - какая-то пожизненная кривая хрень, тут да.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено пох. , 16-Ноя-21 15:51 
Они может и не святые, но пока на троянском пакете в редхат-дебиан-генту никто не попался.

Наверное тысчегласс смотрит только в npm!

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


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 16-Ноя-21 18:26 
Дык, мейнтейнеры редхата-дебиана-генту - конкретные люди с конкретными публично известными ФИО. Залить кто попало в редхат-дебиан-генту пакет не может.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 16-Ноя-21 18:49 
Достаточно взломать аккуант этого ФИО

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено YetAnotherOnanym , 16-Ноя-21 19:31 
А здесь даже и аккаунт ломать не надо.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено пох. , 16-Ноя-21 19:37 
Да ладно? Ты сканы паспортов чтоль проверял? Так усы и подделать можно. А на самом деле половина из них - рептилоиды (а вторая - агенты).

Но их в принципе в разы меньше, да и технология работы с репо не позволяет на коленке быстро-быстро новую версию фигак-в-продакшн, как показала история с багом в бубунте - даже если на самом деле срочно надо.

Ну и входной барьер. Имбецилы по квотам пока дальше CoC.md не проходят.
Понятно, что это только временно.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноноша , 16-Ноя-21 19:36 
> Яп не таскающий неведомую херню со всего интернета в хомяк разработчику

npm грузит пакеты в локальную директорию, а не /home


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Онаним , 16-Ноя-21 21:26 
В репах дистров хотя бы мейнтейнеры есть.
А npm - сборище васянов, каждый из которых может быть не васян, а его сосед-школохакер.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 18-Ноя-21 12:57 
> ЯП без дефолт менеджера - плохой язык.

В корне неверная информация.

ЯП со своим велосипедом - плохой язык.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено хрю , 16-Ноя-21 20:19 
>сколько в самой концепции NPM

Это обычная концепция со времён cpan перла конца 90стых.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Онаним , 16-Ноя-21 21:27 
Надо сказать, шпан - это то, из-за чего перл и выкидывася из системы на самых ранних стадиях.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 16-Ноя-21 21:48 
Ну да, ну да - что еще от рукожопиков ждать-то.

Cpan, в отличие от гнездилища лефтпадов, прекрасно интегрировался с системными пакетными менеджерами - такая фича была предусмотрена изначально. Но, разумеется, л@п4тым оно было слишком сложно, а разработчики за них не захотели - они вообще были олдскульщики и не любили гепеле поделку.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено хрю , 16-Ноя-21 22:02 
Чё? Перл выкидывался из системы linux? Он практически с самого начала в базовой поставке, наверно, всех дистров. шпан это главная инновация перла, которую в том или ином виде сейчас повторяют все от ноды и пистона до java с хрустом.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Онаним , 16-Ноя-21 22:11 
Вы сейчас разом столько сортов г-на назвали, что я прямо таки чуть не захлебнулся.
Единственное что, java мимо.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено yet another anonymous , 17-Ноя-21 08:35 
Да. И ещё pip.

"Ты, главное, только не волнуйся, дурак, всё так хорошо, всё так отлично, и наука к твоим услугам, дурак, и литература, чтобы тебе было весело, дурак, и ни о чём не надо думать… А всяких там вредно влияющих хулиганов и скептиков мы с тобой, дурак, разнесём (с тобой, да не разнести!)…" (C).


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 16-Ноя-21 14:31 
>GitHub приняла решение ввести обязательную двухфакторную аутентификацию

Шли бы они в задницу со своими требованиями привязать телефон.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Enamel , 16-Ноя-21 14:46 
Это неплохая _дополнительная_ авторизация

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено ноунейм , 16-Ноя-21 15:11 
Там нет никаких телефоном или TOTP или 2FA токен. Для всего этого есть опенсурсные приложения не десктоп/телефон и аппаратные токены.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 16-Ноя-21 18:29 
Ввёл на телефоне пароль, на нём же сгенерировал TOTP токен и ввёл его в GitHub. И то и другое спёр бэкдор, идущий в комплекте. Потом телефон накрылся, и ты остался без аккаунта. Д - двухfuckторность.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Гентушник , 17-Ноя-21 16:13 
> Ввёл на телефоне пароль, на нём же сгенерировал TOTP

Вот тут ошибка. Надо было пароль вводить на одном устройстве, а TOTP использовать на другом.
Например входить с компа, а аутентификатор устанавливать на телефон.
Если все яйца у вас лежат в одной корзине, то от двухфакторки толку мало.

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

> Потом телефон накрылся, и ты остался без аккаунта.

Про гитхаб не знаю, но почти везде можно указать способ восстановления аккаунта - по e-mail, по кодам восстановления или по злосчастному смс.
Это по-сути ещё один фактор, который тоже надо "хранить" отдельно от остальных, если подходить по-умному.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 17-Ноя-21 17:37 
Микрософта без зондов не бывает.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Извращенцы NPM , 16-Ноя-21 14:58 
Вы морды этих SJW разрабатывающих npm виделы?

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено пох. , 16-Ноя-21 15:45 
Ну что ты, Петька, это рожи у них такие!
(Присмотревшись - а, нет, правда сраками пьют. Впрочем, они ими похоже еще много чего могут. Код писать, вот...)


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено псевдонимус , 17-Ноя-21 11:09 
Ну да. В паразитории с вредоносным по снова обнаружили вредоносное по. Да и пиво разряботчики скорее всего пьют теплое и srаками.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 16-Ноя-21 15:54 
> Напомним, что в соответствии с проведённым в 2020 году исследованием, лишь 9.27% мэйнтенеров пакетов используют для защиты доступа двухфакторную аутентификацию, а в 13.37% случаев при регистрации новых учётных записей разработчики пытались повторно использовать скомпрометированные пароли, фигурирующие в известных утечках паролей.

Это диагноз. Тут двухфакторная авторизация не поможет. Этим людям просто наплевать на всех, такие пакеты надо удалять, а пользователей банить. Даёшь социальный рейтинг!


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Жироватт , 16-Ноя-21 16:24 
- Э, слышь, админ, вот тебе конвертик, десяток борзых щенков, адресок того урода, называвшего тво. маму - женщиной с пониженной социальной ответственностью и звонок, после которого полицаи резко перестают тебя видеть, только накрути мне рейтинга до ★★★★★, а?
- Э, слышь, сисоп при суперкомпе, вот тебе по рылу р-р-р-раз, по яйцам - д-д-два, и маме с сестренкой по видеосвязи пару раз по лицу. Отстану, не пищи, только накрути мне рейтинга до ★★★★★, а?
- Э, слышь, кодерок базы, вот тебе, еще доза ультакакоина, а следущая...а следующая - не бесплатно! Оставь мне бекдорчик, рейтинг мне подкрутить до ★★★★★, а там я тебе еще ширева подгоню?
- Эй, пап, привет, я возьму твою учётку старшего зама руководителя ГБ на полчаса? Мне тут какой-то плебей рейтинг понизил по беспределу, хочу откатить ему до ★ и себе до ★★★★★.

Хрень, на самом деле, твой социальный рейтинг. Наоборот, увеличивающий простор для злоупотреблений.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено 73 , 16-Ноя-21 16:50 
у людей часто так: кто-то хочет как лучше и делает лучше, но потом приходят 95% и извращают все хорошие, годные стороны себе в угоду

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноноша , 16-Ноя-21 17:27 
Осталось понять какое отношение все написанное имеет дело к сопровождению пакетов...

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 16-Ноя-21 18:12 
Непосредственное
Идея пакетного менеджера - хорошая
Реализация npm - такое себе
Пользователи npm - такие себе, средненькие

Вот и получается, что нужная и полезная идея реализована небрежно, используется неряхами и общий результат - гавно


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено yet another anonymous , 17-Ноя-21 09:02 
Ну, т.е. идея отличная, а вот с народом нам не повезло. Так, что ли?

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Dzen Python , 16-Ноя-21 22:03 
Самое что ни на есть прямое.
Человек же выше писал, что в онлайне, в том числе около js-стеков сегодня крутятся некислые бабки.

Введение социального рейтинга не улучшит ситуации - все равно будет уязвима *сама ранжирующая система* и её операторы. Которые люди... Которые уязвимы для социального инжиниринга и прямых воздействий, вроде подкупа и шантажа...

Не удивлюсь, что и эта, кхг-м, недоработка, была оставлена по просьбе заинтересованных лиц - к какому-нибудь Dan Kuhelmeyer просто пришло несколько человек в штатском, поговорили о погоде и попросили при ревью не заметить пару строчек за скромное вознаграждение, взяв в негласные заложники маму Dan'а.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено YetAnotherOnanym , 16-Ноя-21 19:38 
> а пользователей банить

А оно тут же новую учётку заведёт и будет из неё любой пакет модифицировать как хочет:
> опубликовать новую версию любого пакета, используя для этого свою учётную запись, не авторизированную для выполнения подобных обновлений.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 16-Ноя-21 15:57 
Это смешно "обязательная двухфакторная аутентификация". А где вы раньше были?

Именно из-за вас её и пришлось отключить, потому что нельзя публиковать пакеты автоматически из GitHub / CI / CD.

Сами обос..лись, сами в заслугу себе ставят.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Жироватт , 16-Ноя-21 16:30 
Как определить реальную необходимость и важность технологии в мире на выбранный момент, не впадая в когнитивные искажения, репрезентативно и беспристрастно?

Количество уязвимостей, найденных и поправленных в единицу времени.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 16-Ноя-21 16:48 
А если все поголовно уязвимостей создают на порядки больше чем потом находят, как с сабжем?

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 16-Ноя-21 18:01 
А NPM это что? Мне надо волноваться?

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Урри , 16-Ноя-21 18:15 
Если не в курсе - значит точно надо.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено yet another anonymous , 17-Ноя-21 08:45 
NPM --- система удобного подтягивания троян^W замечательных js-пакетов, на которой сидят почти все js-frameworks, на которых сделан современный web и которые выполняются на вашей машине через современный браузер. Так что можно [уже] не беспокоиться.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Михрютка , 16-Ноя-21 19:08 
>>> С учётом загрузки модулей по цепочке зависимостей, компрометация ненадёжных учётных записей могла поразить в сумме до 52% от всех модулей в NPM.

and nothing of value would be lost

серьезно, нефильтруемое репо с очень важными пакетами is-even и is-odd (с зависимостью от пакета is-number) будет дырявой помойкой по умолчанию, хоть ты стофакторную аутентификацию туда впили.

хотя есть и нужные пакеты, вот, например:

https://www.npmjs.com/package/code-of-conduct-path

Get the path to the Code of Conduct (contributor covenent) file in a local repository.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Онаним , 16-Ноя-21 21:29 
> and nothing of value would be lost

so true


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено YetAnotherOnanym , 16-Ноя-21 19:52 
> Уязвимость была вызвана некорректной проверкой полномочий в коде микросервисов, обрабатывающих запросы к NPM. Сервис авторизации выполнял проверку прав доступа к пакетам на основе данных, передаваемых в запросе, но другой сервис, загружающий обновление в репозиторий, определял пакет для публикации на основе содержимого метаданных в загруженном пакете

Правая рука не знает, что делает левая. Зато микросервисы - стильно, модно, молодёжно. Можно постоянно допиливать и непрерывно-интегрировать/непрерывно-развёртывать любой микросервис независимо от остальных по принципу "кто в лес, кто по дрова".


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 16-Ноя-21 20:13 
Проблема не в микро, а в низком пороге входа и валом валят халтурщики. Которые молодые, но нужны деньги. И дальше начинается... поиск людей на развитие и рост полученных от них продуктов труда.

Тут что макро, что микро - один результат - беспорядок.


"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноноша , 16-Ноя-21 20:41 
А они закрыли исходники npm сервера? Раньше вроде он был доступен в репозитории https://github.com/npm/www, а сейчас открыт только npm/cli.

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 17-Ноя-21 09:06 
мильены бандерлогов в процессе дальнейшего ухудшения качества Web просмотрели очередной баг

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Виктор , 17-Ноя-21 11:22 
Слава богу мне node.js не зашла, постоянные баги с ней

"Уязвимость, позволявшая выпустить обновление для любого паке..."
Отправлено Аноним , 18-Ноя-21 16:27 
Короче, добавляете в проект .npmrc опцию strict=true, комитете package-lock.json и не обновляете пакеты, если нет необходимости.