Выполнение предложенной команды не устраняет уязвимость 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 Audit Fix Fix', больше информации здесь.
- Запустите "Исправление аудита npm".
Когда вы снова запустите 'npm аудит', единственными оставшимися уязвимостями должны стать проблемы "Ручного просмотра".
Это сработало для меня:
Do the npm audit suggestions that aren't npm updates Delete package-lock.json Delete the node_modules folder Run npm install again
Кажется, это ошибка в npm 6.0.1, связанная с обработкой необязательных зависимостей: https://github.com/npm/npm/issues/20577
Источник: https://github.com/npm/npm/issues/20675. Один fsevents
проблема может быть связана с тем, что
fsevents
не может быть установлен на Windows, поэтому вам придется обновить его на компьютере MacOS.
Это немного странно, поскольку, глядя на решение exhnozoaa, по состоянию на эту дату, похоже, подразумевается иное:
Я смог обойти это в Windows с помощью следующих шагов.
- открыто
package-lock.json
в редакторе.- Ищи
"fsevents"
, Найдите тот, который является объектом прямо под"dependencies"
,- удалять
"fsevents"
(ключ и весь объект).- Из терминала беги
npm install
,Это должно восстановить этот раздел с последней версией, совместимой с другими пакетами. Я не думаю, что это хороший способ исправить это, но он мне помог.