Выполнение предлагаемой команды не устраняет уязвимость NPM

После каждой установки нового модуля NPM в моем проекте появляется следующая ошибка:

[!] 40 vulnerabilities found - Packages audited: 5840 (0 dev, 299 optional)
    Severity: 8 Low | 24 Moderate | 8 High

Итак, я запускаю npm audit и получаю детали для каждой из 40 уязвимостей, таких как:

# Run  npm install [email protected]  to resolve 22 vulnerabilities
SEMVER WARNING: Recommended action is a potentially breaking change
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate      │ Prototype pollution                                          │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ hoek                                                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ npm                                                          │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ npm > libcipm > npm-lifecycle > node-gyp > request > hawk >  │
│               │ boom > hoek                                                  │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://nodesecurity.io/advisories/566                       │
└───────────────┴──────────────────────────────────────────────────────────────┘

или это:

# Run  npm update fsevents --depth 2  to resolve 3 vulnerabilities
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low           │ Regular Expression Denial of Service                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ debug                                                        │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ chokidar                                                     │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ chokidar > fsevents > node-pre-gyp > tar-pack > debug        │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://nodesecurity.io/advisories/534                       │
└───────────────┴──────────────────────────────────────────────────────────────┘

Поэтому я запускаю npm install [email protected] (хотя у меня уже был 6.0.1), а затем npm update fsevents --depth 2 Но после этого я повторно запускаю npm audit и ничего не изменилось, у меня все же есть те же 40 уязвимостей и некоторые из них действительно страшны. Что я должен делать?

Ответ 1

Это работало для меня на MacOS:

Когда вы снова запускаете проверку "npm", единственными оставленными уязвимостями должны быть проблемы с "ручным просмотром".

Ответ 2

Кажется, это ошибка в npm 6.0.1, связанная с обработкой дополнительных зависимостей: https://github.com/npm/npm/issues/20577

Ответ 3

Источник: https://github.com/npm/npm/issues/20675. Одна проблема с fsevents может повлиять на то, что

fsevents нельзя установить на окна, поэтому вам придется обновлять его на машине macOS.

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

Я смог обойти это в Windows со следующими шагами.

  1. Откройте package-lock.json в редакторе.
  2. Найдите "fsevents". Найдите объект, который находится непосредственно под "dependencies".
  3. Удалите "fsevents" (ключ и весь объект).
  4. С терминала запустите npm install.

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