Выполнение предлагаемой команды не устраняет уязвимость 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 со следующими шагами.
- Откройте
package-lock.json
в редакторе. - Найдите
"fsevents"
. Найдите объект, который находится непосредственно под "dependencies"
. - Удалите
"fsevents"
(ключ и весь объект). - С терминала запустите
npm install
.
Это должно восстановить этот раздел с последней версией, совместимой с другими пакетами. Я действительно не думаю, что это хороший способ исправить это, но это тот, который работал на меня.