Выполнение предложенной команды не устраняет уязвимость 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 до Нового 6.1.0. Он вводит команду "исправление аудита npm",подробнее здесь.
  • выполнить "исправление аудита npm".

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


Это похоже на ошибку в 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.

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