The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

16.11.2021 12:32

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

Уязвимость была вызвана некорректной проверкой полномочий в коде микросервисов, обрабатывающих запросы к NPM. Сервис авторизации выполнял проверку прав доступа к пакетам на основе данных, передаваемых в запросе, но другой сервис, загружающий обновление в репозиторий, определял пакет для публикации на основе содержимого метаданных в загруженном пакете. Таким образом, атакующий мог запросить публикацию обновления для своего пакета, к которому он имеет доступ, но указать в самом пакете информацию о другом пакете, который и был бы в итоге обновлён.

Проблема была устранена через 6 часов после появления информации об уязвимости, но уявзвимость присутствовала в NPM дольше, чем охватывают логи с телеметрией. GitHub утверждает, что следов совершения атак с использованием данной уязвимости с сентября 2020 года не зафиксировано, но нет гарантий, что проблема не экслуатировалась раньше.

Второй инцидент произошёл 26 октября. В ходе технических работ с базой данных сервиса replicate.npmjs.com было выявлено присутствие в доступной для внешних запросов БД конфиденциальных данных, раскрывающих информацию об именах внутренних пакетов, которые упоминались в логе изменений. Информация о подобных именах может быть использована для совершения атак на зависимости во внутренних проектах (в феврале подобная атака позволила выполнить код на серверах PayPal, Micrоsoft, Apple, Netflix, Uber и ещё 30 компаний).

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

Напомним, что в соответствии с проведённым в 2020 году исследованием, лишь 9.27% мэйнтенеров пакетов используют для защиты доступа двухфакторную аутентификацию, а в 13.37% случаев при регистрации новых учётных записей разработчики пытались повторно использовать скомпрометированные пароли, фигурирующие в известных утечках паролей. В ходе проверки надёжности используемых паролей удалось получить доступ к 12% аккаунтов в NPM (13% пакетов) из-за использования предсказуемых и тривиальных паролей, таких как "123456". В числе проблемных оказались 4 учётные записи пользователей из Top20 самых популярных пакетов, 13 учётных записей, пакеты которых загружали более 50 млн раз в месяц, 40 - более 10 млн загрузок в месяц и 282 с более 1 млн загрузок в месяц. С учётом загрузки модулей по цепочке зависимостей, компрометация ненадёжных учётных записей могла поразить в сумме до 52% от всех модулей в NPM.

  1. Главная ссылка к новости (https://github.blog/2021-11-15...)
  2. OpenNews: В NPM-пакеты coa и rc, насчитывающие 9 и 14 млн загрузок в неделю, внедрено вредоносное ПО
  3. OpenNews: В NPM-пакет UAParser.js, насчитывающий 8 млн загрузок в неделю, внедрено вредоносное ПО
  4. OpenNews: В репозитории NPM выявлены три пакета, выполняющих скрытый майнинг криптовалют
  5. OpenNews: Более половины npm-пакетов могли быть скомпрометированы из-за ненадёжных паролей доступа
  6. OpenNews: Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн загрузок в неделю
Лицензия: CC-BY
Тип: Проблемы безопасности
Короткая ссылка: https://opennet.ru/56167-npm
Ключевые слова: npm
Поддержать дальнейшую публикацию новостей на OpenNET.


Обсуждение (60) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Какаянахренразница (ok), 13:52, 16/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +21 +/
    > уязвимости, позволяющей опубликовать новую версию любого пакета

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

     
     
  • 2.4, A.Stahl (ok), 14:00, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Никогда ещё $@#&%© не был таким полным.

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

     
     
  • 3.17, kusb (?), 15:24, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +8 +/
    А по моему нет, он заметно пополнел. Любая версия любого пакета.
     
  • 2.24, Жироватт (ok), 16:12, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    (Хакер и солонка)^(90% прода на этой хрени)

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

     

  • 1.2, А где же каменты (?), 13:53, 16/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    Что-то NPM часто светиться в новостях начал, никогда такого не было и вот опять!
     
     
  • 2.5, QwertyReg (ok), 14:10, 16/11/2021 Скрыто модератором
  • –7 +/
     
     
  • 3.7, Аноним (7), 14:21, 16/11/2021 Скрыто модератором
  • +/
     
  • 3.10, kusb (?), 14:33, 16/11/2021 Скрыто модератором
  • +2 +/
     
  • 3.13, Корец (?), 14:47, 16/11/2021 Скрыто модератором
  • –3 +/
     
  • 3.14, Аноним (14), 14:52, 16/11/2021 Скрыто модератором
  • +2 +/
     
  • 2.48, Онаним (?), 21:25, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Искатели уязвимостей внезапно обнаружили в уязвимостях NPM.
     

  • 1.6, BratishkaErik (ok), 14:13, 16/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > GitHub утверждает, что следов совершения атак с использованием данной уязвимости с сентября 2020 года не зафиксировано.

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

     
     
  • 2.39, Аноним (39), 19:12, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вынепонимаетеэтодругое!
     

  • 1.8, yet another anonymous (?), 14:30, 16/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Проблема не столько в инфраструктуре, сколько в самой концепции NPM: "мы за вас будем и управлять всей структурой пакетов, и отгрузим вам то, что вам нужно по своему усмотрению, ни о чём не заботьтесь". Реальный профит либо в рекламе, либо в коллекции информации.

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

     
     
  • 2.11, Enamel (ok), 14:45, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    То ли дело репозитории дистров линукса, вот там-то точно всё хорошо, ведь мейнтейнеры святые люди.

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

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

     
     
  • 3.19, пох. (?), 15:51, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Они может и не святые, но пока на троянском пакете в редхат-дебиан-генту никто не попался.

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

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

     
     
  • 4.33, Аноним (33), 18:26, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Дык, мейнтейнеры редхата-дебиана-генту - конкретные люди с конкретными публично известными ФИО. Залить кто попало в редхат-дебиан-генту пакет не может.
     
     
  • 5.37, Аноним (37), 18:49, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Достаточно взломать аккуант этого ФИО
     
     
  • 6.40, YetAnotherOnanym (ok), 19:31, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А здесь даже и аккаунт ломать не надо.
     
  • 5.42, пох. (?), 19:37, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да ладно? Ты сканы паспортов чтоль проверял? Так усы и подделать можно. А на самом деле половина из них - рептилоиды (а вторая - агенты).

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

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

     
  • 4.41, Аноноша (?), 19:36, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Яп не таскающий неведомую херню со всего интернета в хомяк разработчику

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

     
  • 3.49, Онаним (?), 21:26, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В репах дистров хотя бы мейнтейнеры есть.
    А npm - сборище васянов, каждый из которых может быть не васян, а его сосед-школохакер.
     
  • 3.65, Аноним (65), 12:57, 18/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > ЯП без дефолт менеджера - плохой язык.

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

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

     
  • 2.46, хрю (?), 20:19, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >сколько в самой концепции NPM

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

     
     
  • 3.50, Онаним (?), 21:27, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Надо сказать, шпан - это то, из-за чего перл и выкидывася из системы на самых ранних стадиях.
     
     
  • 4.52, Аноним (52), 21:48, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, ну да - что еще от рукожопиков ждать-то.

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

     
  • 4.53, хрю (?), 22:02, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Чё? Перл выкидывался из системы linux? Он практически с самого начала в базовой поставке, наверно, всех дистров. шпан это главная инновация перла, которую в том или ином виде сейчас повторяют все от ноды и пистона до java с хрустом.
     
     
  • 5.55, Онаним (?), 22:11, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы сейчас разом столько сортов г-на назвали, что я прямо таки чуть не захлебнулся.
    Единственное что, java мимо.
     
  • 3.56, yet another anonymous (?), 08:35, 17/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да. И ещё pip.

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

     

  • 1.9, Аноним (33), 14:31, 16/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >GitHub приняла решение ввести обязательную двухфакторную аутентификацию

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

     
     
  • 2.12, Enamel (ok), 14:46, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это неплохая _дополнительная_ авторизация
     
  • 2.16, ноунейм (?), 15:11, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Там нет никаких телефоном или TOTP или 2FA токен. Для всего этого есть опенсурсные приложения не десктоп/телефон и аппаратные токены.
     
     
  • 3.34, Аноним (33), 18:29, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ввёл на телефоне пароль, на нём же сгенерировал TOTP токен и ввёл его в GitHub. И то и другое спёр бэкдор, идущий в комплекте. Потом телефон накрылся, и ты остался без аккаунта. Д - двухfuckторность.
     
     
  • 4.63, Гентушник (ok), 16:13, 17/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Ввёл на телефоне пароль, на нём же сгенерировал TOTP

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

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

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

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

     
  • 2.64, Аноним (64), 17:37, 17/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Микрософта без зондов не бывает.
     

  • 1.15, Извращенцы NPM (?), 14:58, 16/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вы морды этих SJW разрабатывающих npm виделы?
     
     
  • 2.18, пох. (?), 15:45, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну что ты, Петька, это рожи у них такие!
    (Присмотревшись - а, нет, правда сраками пьют. Впрочем, они ими похоже еще много чего могут. Код писать, вот...)

     
     
  • 3.60, псевдонимус (?), 11:09, 17/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да. В паразитории с вредоносным по снова обнаружили вредоносное по. Да и пиво разряботчики скорее всего пьют теплое и srаками.
     

  • 1.20, Аноним (20), 15:54, 16/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    > Напомним, что в соответствии с проведённым в 2020 году исследованием, лишь 9.27% мэйнтенеров пакетов используют для защиты доступа двухфакторную аутентификацию, а в 13.37% случаев при регистрации новых учётных записей разработчики пытались повторно использовать скомпрометированные пароли, фигурирующие в известных утечках паролей.

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

     
     
  • 2.25, Жироватт (ok), 16:24, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    - Э, слышь, админ, вот тебе конвертик, десяток борзых щенков, адресок того урода, называвшего тво. маму - женщиной с пониженной социальной ответственностью и звонок, после которого полицаи резко перестают тебя видеть, только накрути мне рейтинга до ★★★★★, а?
    - Э, слышь, сисоп при суперкомпе, вот тебе по рылу р-р-р-раз, по яйцам - д-д-два, и маме с сестренкой по видеосвязи пару раз по лицу. Отстану, не пищи, только накрути мне рейтинга до ★★★★★, а?
    - Э, слышь, кодерок базы, вот тебе, еще доза ультакакоина, а следущая...а следующая - не бесплатно! Оставь мне бекдорчик, рейтинг мне подкрутить до ★★★★★, а там я тебе еще ширева подгоню?
    - Эй, пап, привет, я возьму твою учётку старшего зама руководителя ГБ на полчаса? Мне тут какой-то плебей рейтинг понизил по беспределу, хочу откатить ему до ★ и себе до ★★★★★.

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

     
     
  • 3.28, 73 (?), 16:50, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    у людей часто так: кто-то хочет как лучше и делает лучше, но потом приходят 95% и извращают все хорошие, годные стороны себе в угоду
     
  • 3.29, Аноноша (?), 17:27, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Осталось понять какое отношение все написанное имеет дело к сопровождению пакетов...
     
     
  • 4.31, Аноним (31), 18:12, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Непосредственное
    Идея пакетного менеджера - хорошая
    Реализация npm - такое себе
    Пользователи npm - такие себе, средненькие

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

     
     
  • 5.58, yet another anonymous (?), 09:02, 17/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, т.е. идея отличная, а вот с народом нам не повезло. Так, что ли?
     
  • 4.54, Dzen Python (ok), 22:03, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Самое что ни на есть прямое.
    Человек же выше писал, что в онлайне, в том числе около js-стеков сегодня крутятся некислые бабки.

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

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

     
  • 2.43, YetAnotherOnanym (ok), 19:38, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > а пользователей банить

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

     

  • 1.22, Аноним (22), 15:57, 16/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Это смешно "обязательная двухфакторная аутентификация". А где вы раньше были?

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

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

     
  • 1.26, Жироватт (ok), 16:30, 16/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Как определить реальную необходимость и важность технологии в мире на выбранный момент, не впадая в когнитивные искажения, репрезентативно и беспристрастно?

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

     
     
  • 2.27, Аноним (27), 16:48, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А если все поголовно уязвимостей создают на порядки больше чем потом находят, как с сабжем?
     

  • 1.30, Аноним (30), 18:01, 16/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А NPM это что? Мне надо волноваться?
     
     
  • 2.32, Урри (ok), 18:15, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если не в курсе - значит точно надо.
     
  • 2.57, yet another anonymous (?), 08:45, 17/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    NPM --- система удобного подтягивания троян^W замечательных js-пакетов, на которой сидят почти все js-frameworks, на которых сделан современный web и которые выполняются на вашей машине через современный браузер. Так что можно [уже] не беспокоиться.
     

  • 1.38, Михрютка (ok), 19:08, 16/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >>> С учётом загрузки модулей по цепочке зависимостей, компрометация ненадёжных учётных записей могла поразить в сумме до 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.

     
     
  • 2.51, Онаним (?), 21:29, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > and nothing of value would be lost

    so true

     

  • 1.44, YetAnotherOnanym (ok), 19:52, 16/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Уязвимость была вызвана некорректной проверкой полномочий в коде микросервисов, обрабатывающих запросы к NPM. Сервис авторизации выполнял проверку прав доступа к пакетам на основе данных, передаваемых в запросе, но другой сервис, загружающий обновление в репозиторий, определял пакет для публикации на основе содержимого метаданных в загруженном пакете

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

     
     
  • 2.45, Аноним (45), 20:13, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема не в микро, а в низком пороге входа и валом валят халтурщики. Которые молодые, но нужны деньги. И дальше начинается... поиск людей на развитие и рост полученных от них продуктов труда.

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

     

  • 1.47, Аноноша (?), 20:41, 16/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А они закрыли исходники npm сервера? Раньше вроде он был доступен в репозитории https://github.com/npm/www, а сейчас открыт только npm/cli.
     
  • 1.59, Аноним (-), 09:06, 17/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    мильены бандерлогов в процессе дальнейшего ухудшения качества Web просмотрели очередной баг
     
  • 1.62, Виктор (??), 11:22, 17/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Слава богу мне node.js не зашла, постоянные баги с ней
     
  • 1.66, Аноним (66), 16:27, 18/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Короче, добавляете в проект .npmrc опцию strict=true, комитете package-lock.json и не обновляете пакеты, если нет необходимости.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:
    При перепечатке указание ссылки на opennet.ru обязательно



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру