Выполнение предложенной команды не устраняет уязвимость 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 npm@6.0.1  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 npm@6.0.1 (хотя у меня уже была 6.0.1) тогда npm update fsevents --depth 2 Но после этого я перезапускаю npm audit и ничего не изменилось, у меня все еще есть те же 40 уязвимостей, и некоторые из них действительно страшны. Что я должен делать?

3 ответа

Решение

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

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

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

Do the npm audit suggestions that aren't npm updates
Delete package-lock.json
Delete the node_modules folder
Run npm install again

https://github.com/npm/npm/issues/20684

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

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

fsevents не может быть установлен на Windows, поэтому вам придется обновить его на компьютере MacOS.

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

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

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

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

Другие вопросы по тегам