Как исправить Tar пакета 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-пакет?

Ответ 2

На этот вопрос уже был дан ответ. Можете ли вы попробовать это решение fooobar.com/questions/17216787/..., оно работает для меня

Ответ 3

Пожалуйста, обновите значение "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"
      }
    }

Ответ 5

У меня та же проблема, я обновил tar до:

"tar": {
          "version": "4.4.8",
          "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
          "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
          "dev": true,
          "requires": {
            "chownr": "^1.1.1",
            "fs-minipass": "^1.2.5",
            "minipass": "^2.3.4",
            "minizlib": "^1.1.1",
            "mkdirp": "^0.5.0",
            "safe-buffer": "^5.1.2",
            "yallist": "^3.0.2"
          }
        }

также на npm покажи версию tar, которую я беру: 4.4.8, но у меня все еще есть ошибка:

  High            Arbitrary File Overwrite

  Package         tar

  Patched in      >=4.4.2

  Dependency of   @angular-devkit/build-angular [dev]

  Path            @angular-devkit/build-angular > node-sass > node-gyp > tar

  More info       https://npmjs.com/advisories/803

Ответ 6

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

Ответ 7

Из вопроса SASS github: open 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

Тада!