Как исправить Tar пакета NPM, с высокой уязвимостью относительно произвольного перезаписи файла, когда пакет обновлен? - PullRequest
37 голосов
/ 11 апреля 2019

Я только что установил 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 не решило проблему, поскольку уязвимость требует проверки вручную. Рекомендация по ссылке more info гласит об обновлении до версии 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-пакет?

Ответы [ 4 ]

20 голосов
/ 11 апреля 2019

Проблема отслеживается на странице gitgub

https://github.com/sass/node-sass/issues/2625

4 голосов
/ 19 апреля 2019

Пожалуйста, обновите значение "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"
      }
    }
2 голосов
/ 15 апреля 2019

В вашем пакете-lock.jason обновите tar для узла ниже (v 4.4.8):

"версия": "4.4.8", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz"

0 голосов
/ 23 июня 2019

Из проблемы 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_modules\npm
npm i
npm audit fix
npm audit

Тада!

...