#npm-install #tar #node-sass #flickity #npm-audit
#npm-install #tar #узел-sass #flickity #npm-аудит
Вопрос:
Я только что установил Flickity из NPM и получил отчет о безопасности аудита NPM после запуска npm audit
, в котором говорится, что у меня проблема с высокой уязвимостью в отношении перезаписи произвольного файла в tar пакета, которая зависит от node-sass, как вы можете видеть здесь:
High......................... Arbitrary File Overwrite
Package...................... tar
Patched in................... >=4.4.2
Dependency of................ node-sass [dev]
Path......................... node-sass > node-gyp > tar
More info.................... https://npmjs.com/advisories/803
Запуск npm audit fix
не решил проблему, поскольку уязвимость требует проверки вручную. В рекомендации по ссылке «Дополнительная информация» указано обновить до версии 4.4.2
или более поздней. Когда я запустил, npm show tar version
я понял, что использую версию 4.4.8
, которая меня смутила. Я пошел package-lock.json
и понял, что node-gyp, который зависит от node-sass, использует версию tar ^ 2.0.0
Это сбивает меня с толку, поскольку я видел много разных версий tar в зависимости от других пакетов, но это node-sass > node-gyp > tar version
единственная версия, описанная ниже v4.4.2
. Почему это так работает, почему я должен исправлять это вручную и как я могу вручную исправить / обновить этот пакет tar?
Ответ №1:
Проблема отслеживается на странице gitgub
Ответ №2:
Пожалуйста, обновите значение «tar» в вашем файле «package-lock.json». И для проверки запустите « [npm audit][1]
«.
"tar": {
"version": "4.4.8",
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
"integrity": "value",
"dev": true,
"optional": true,
"requires": {
"block-stream": "*",
"fstream": "^1.0.2",
"inherits": "2"
}
}
Ответ №3:
В вашем пакете-lock.jason обновите tar для узла до приведенного ниже (версия 4.4.8):
«версия»: «4.4.8», «решаемая»: «https://registry.npmjs.org/tar/-/tar-4.4.8.tgz «
Комментарии:
1. npm может перезаписать эти настройки, поэтому: используйте npm ci для загрузки ваших настроек из файла package-lock.jason вместо package.jason
2. Ваш комментарий сделал для меня то, чего не сделал ни один другой ответ. Спасибо!
Ответ №4:
Из проблемы SASS github: откройте package-lock.json и найдите «tar», который должен выглядеть следующим образом:
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
Замените эти 3 строки на:
"version": "4.4.8",
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
"integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh x EXx7XW96xYQ==",
удалите папку:
node_modulesnpm
npm i
npm audit fix
npm audit
Tada!
Комментарии:
1. В этом нет необходимости.
npm audit fix
alone исправит это, поскольку эта проблема была решена и закрыта, как вы можете видеть здесь github.com/sass/node-sass/issues/2625 (одобренный ответ выше)