NPM에서 세 가지 취약점이 발견되었으며 NPM 6.13.4에서 수정되었습니다.

개발자 프로젝트 책임자 NPM 패키지 관리자에서 출시 최근 출시 NPM 6.13.4에 대한 수정 업데이트 Node.js 제공에 포함되며 JavaScript 모듈을 배포하는 데 사용됩니다.

이 새로운 수정 버전의 관리자는 세 가지 취약점을 해결하기 위해 출시 공격자가 준비한 패키지를 설치할 때 임의의 시스템 파일을 수정하거나 덮어 쓸 수 있습니다.

CVE-2019-16775

이 취약점 6.13.3 이전의 NPM CLI 버전에 영향을 미칩니다. 그럼 당신은 임의 파일 쓰기에 취약합니다. 패키지는 폴더 외부의 파일에 대한 심볼릭 링크를 만들 수 있습니다. node_modules 설치 후 빈 필드를 통해.

bin package.json 필드에 올바르게 구성된 항목 패키지 편집기가 임의의 파일을 가리키는 심볼릭 링크를 만들 수 있습니다. 패키지가 설치 될 때 사용자의 시스템에. 이 동작은 설치 스크립트를 통해 여전히 가능합니다.

CVE-2019-16776

이 취약점에서 6.13.3 이전의 NPM CLI 버전은 임의 파일 쓰기의 영향을받습니다. bin 필드를 통해 의도 한 node_modules 폴더 외부의 폴더에 대한 액세스를 막을 수 없기 때문입니다.

bin package.json 필드에 올바르게 구성된 항목을 사용하면 패키지가 설치 될 때 패키지 편집기가 사용자 시스템의 임의 파일을 수정하고 액세스 할 수 있습니다. 이 동작은 설치 스크립트를 통해 여전히 가능합니다.

bin 필드에 "/../"가있는 경로가 허용되었습니다.

CVE-2019-16777

마지막으로, 6.13.4 이전의 NPM CLI 버전은이 취약점에 취약합니다. 임의의 파일 덮어 쓰기에. 다른 바이너리가 전역 적으로 설치된 기존 바이너리를 덮어 쓰는 것을 방지 할 수 없기 때문입니다.

패키지가 전역 적으로 설치되고 서비스 바이너리를 생성 한 경우 모든 후속 설치 서비스 바이너리도 생성하는 패키지 이전 서비스 바이너리를 덮어 씁니다.. 이 동작은 로컬 설치 및 설치 스크립트를 통해서도 허용됩니다.

실행 파일이 설치된 대상 디렉토리 (일반적으로 / usr, / local, / bin)의 파일 만 바꿀 수 있습니다.

이러한 취약성의 중요한 요소는 이러한 결함을 악용하려는 사람이 피해자가 특별히 설계된 빈 항목이있는 패키지를 설치하도록해야한다는 것입니다. 그러나 과거에 보았 듯이 이것은 극복 할 수없는 장벽이 아닙니다.

npm, Inc.의 보안 팀은이 공격의 예를 찾기 위해 레지스트리를 스캔했지만이 악용으로 레지스트리에 게시 된 패키지를 찾지 못했습니다. 이것이 사용되지 않았다는 것을 보장하지는 않지만 현재 레지스트리에 게시 된 패키지에서 사용되고 있지 않음을 의미합니다.

앞으로도 악의적 인 사용자가이 취약점을 악용하지 못하도록 지속적으로 모니터링하고 조치를 취할 것입니다. 그러나 npm 패키지 (개인 레지스트리, 미러, git 저장소 등)에 대한 가능한 모든 소스를 스캔 할 수는 없으므로 가능한 한 빨리 업데이트하는 것이 중요합니다.

문제 해결

NPM v6.13.3에서 사용중인 package.json 구문 분석 라이브러리가 앞쪽을 제거하기 위해 bin 필드의 모든 항목을 삭제하고 유효성을 검사하는 방식으로 업데이트되었으므로 주요 솔루션으로 새로운 수정 버전으로 업데이트하는 것이 좋습니다. Node.js에 내장 된 잘 테스트되고 신뢰성 높은 경로 유틸리티를 사용하여 이니셜, 경로 항목 및 기타 경로 이스케이프 수단을 슬래시합니다.

그러나, 해결 방법으로 다음 옵션을 사용하여 설치할 수 있습니다. – 스크립트 무시, 기본 제공 드라이버 패키지 실행을 금지합니다.

더 이상 고민하지 않고 버그에 대해 더 알고 싶다면 npm 블로그 게시물에서 자세한 내용을 확인할 수 있습니다. 다음 링크에서.

마지막으로 새 버전을 설치하려는 사용자는 공식 채널에서 설치하거나 소스 코드에서 컴파일하도록 선택할 수 있습니다. 이를 위해 다음 지침을 따를 수 있습니다. 다음 링크.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.