developer tip

package-lock.json에 정의 된 종속성의 잠재적 보안 취약성을 수정하는 적절한 방법

copycodes 2020. 11. 12. 08:25
반응형

package-lock.json에 정의 된 종속성의 잠재적 보안 취약성을 수정하는 적절한 방법


Github가 내 저장소 중 하나에서이 오류를 제공했습니다.

We found a potential security vulnerability in one of your dependencies.
A dependency defined in ./package-lock.json has known security vulnerabilities 
and should be updated.

종속성은 package.json파일에 정의되어 있지 않습니다 . 내 이해로는 package-lock.json파일 을 삭제 하고 다시 생성하는 것은 좋지 않습니다 . 그러나이 문제를 해결할 수있는 다른 방법은 없습니다. 이 보안 취약점을 무시하면 며칠 후 다시 나타납니다. 어떤 아이디어? 감사!


새로운 기능 : 이제 npm @ 6을 사용하여 직접 실행할 수 있습니다.

npm audit fix

이전 답변 :

문제가있는 패키지의 이름을 확인한 다음 실행해야합니다.

npm install package-name

분명히 패키지 이름을 대체합니다.

이렇게하면 최신 버전의 패키지가 설치되며 최신 버전이 보안 문제를 해결하는 경우가 많습니다. 버전에 제약이있는 경우 (예 : 1.2) 언제든지 다음을 시도 할 수 있습니다.

npm install package-name@^1.2

최신 패치 버전이 설치됩니다.


이 문제를 해결하려면 :

해결 방법 1 : 먼저 취약점을 찾으십시오. 터미널 사용 : 프로젝트에 cd를 입력 한 다음 "npm ls hoek" 을 실행 하십시오.

마지막으로 npm install bcrypt @ latest

그런 다음 업데이트 된 프로젝트를 git에 푸시합니다 (예 : 새로운 커밋 수행).

해결책 2 :

첫 번째 옵션 / 솔루션으로 문제가 해결되지 않는 경우 package-lock.json에서 버전을 수동으로 변경하십시오. 버전을 2.16.3에서 4.2.1로 수동 변경

"hoek": {
      "version":  "4.2.1",
      "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
      "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
      "dev": true

그런 다음 GitHub (commit / push)에서 프로젝트를 업데이트하십시오. package-lock.json 버전에서 발생하는 모든 hoek 버전이 4.2.1로 변경되었는지 확인하십시오.

또는 npm을 사용하여 hoek 버전 / update hoek을 변경하는 방법을 알아낼 수 있다면 훨씬 더 간단하게 만들 것입니다. (예 : npm update @ hoek..version ) .. 또는 특정 종속성을 제거한 다음 bower를 사용하여 다시 설치하거나 npm.


내 이해로는 package-lock.json 파일을 삭제하고 다시 생성하는 것은 좋지 않습니다.

그러나 이것은 일반적으로이 경우에 수행되는 것입니다.
예를 들어 PR 8535에서 해결 된 angular / angular-cli 문제 8534를 참조하십시오 . 리드 같은 종속 프로젝트는 하기 의 업데이트 PR (31) : .
frees-io/freestyle-opscenter-webclientpackage-lock.json


이 문제를 해결하는 가장 간단하고 쉬운 방법은 다음과 같습니다.

  1. npm install <dep>
  2. npm uninstall <dep>
  3. npm update
  4. npm install

출처 : https://github.com/Microsoft/vscode/issues/48783#issuecomment-384873041


나는 실로 구축하고 있던 프로젝트에서 lodash 보안 취약점과 동일한 문제를 겪고있었습니다. Github는이를 보안 문제로 표시했습니다.

터미널을 사용하여 위의 @rileymanda의 대답을 시도했습니다. cd into project, 다음 실행 npm ls lodash.

이것은 내 경우에 오류가 react-scripts에 있음을 발견했습니다 . 반응 스크립트 및 lodash 관련 문제에 대한 빠른 Google은 이것이 알려진 문제임을 밝혀 냈습니다.

나는 실을 통해 여러 가지를 고치려고 시도했지만 모두 성공하지 못했습니다. npm ls lodash여전히 사용중인 lodash의 취약한 버전을 보여주었습니다.

npm 개선에 대한 Matt Turnbull의 블로그 를 읽은 후 yarn에서 npm으로 다시 전환했습니다. (Delete yarn.lock, delete ./node_modules. Run npm install). npm ls lodash이제 사용중인 최신 종속성 버전이 표시되었습니다. 만세! github에 전념했으며 이제 취약점이 사라져서 기뻤습니다.

원 사는 그러한 문제를 풀기 위해 고군분투하는 것 같습니다 (또는 의도하지 않은 것 같습니다).

yarn으로 빌드 할 때이 문제가 발생하면 [back]을 npm으로 전환 해보세요!


알려진 보안 취약점을 업데이트해야합니다.

2019 년 5 월 23 일부터 " Dependabot : 자동화 된 보안 수정 "이 있습니다.

Dependabot의 통합을 통해 자동화 된 보안 수정을 공개 베타로 출시했습니다.

Automated security fixes are pull requests generated by GitHub to fix security vulnerabilities.
They automate a tedious part of the workflow and make it easy for developers to keep their dependencies up to date.

See more at "Configuring automated security fixes"

Note: Automatic security fixes are available in beta and are subject to change.

You can enable automatic security fixes for any repository that uses security alerts and the dependency graph.
We'll automatically enable automatic security fixes in every repository that uses security alerts and the dependency graph over the next few months, starting in May 2019.


This works for me. uninstall all of your dependencies and install it again

For example

from package.json see list of your dependencies

{
"name": "ebook-saler",
  "version": "1.0.0",
  "description": "App for selling ebooks",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "author": "Md Shayon",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.19.0",
    "express": "^4.17.1",
    "express-handlebars": "^3.1.0",
    "hoek": "^6.1.3",
    "stripe": "^7.5.0"
  }
}

Follow the command for this

npm uninstall body-parser express express-handlebars hoek stripe
npm install body-parser express express-handlebars hoek stripe
git commit -m "updated"
git push

  1. On GitHub, navigate to the main page of the repository.
  2. Under your repository name, click Security.
  3. Click the alert you'd like to view.
  4. Review the details of the vulnerability and, if available, the pull request containing the automated security fix.
  5. Optionally, if there isn't already an automated security fix for the alert, to create a pull request to resolve the vulnerability, click Create automated security fix.
  6. When you're ready to update your dependency and resolve the vulnerability, merge the pull request.

See details


try npm audit fix, it will slove many warnings

then npm i [package.name]@xxx

for example:

"dependencies": {
  "lodash": ">=4.17.13"
}

npm i lodash@4.17.13

참고URL : https://stackoverflow.com/questions/49582891/proper-way-to-fix-potential-security-vulnerability-in-a-dependency-defined-in-pa

반응형