상세 컨텐츠

본문 제목

GitHub, NPM 패키지 매니저 내 주요 취약점 2개 수정

국내외 보안동향

by 알약4 2021. 11. 17. 14:00

본문

GitHub addressed two major vulnerabilities in the NPM package manager

 

GitHub이 이미 패치된 NPM 내 주요 취약점 2가지를 공개했습니다.

 

첫 번째 취약점은 공격자가 적절한 승인 과정 없이도 계정을 통해 모든 npm 패키지의 새 버전을 게시하는 데 악용될 수 있습니다. 이 취약점은 지난 112Kajetan Grzybowski(DrBrix) Maciej Piechota(haqpl)가 버그 바운티 프로그램을 통해 GitHub 측에 제보했습니다.

 

GitHub 보안 책임자인 Mike Hanley는 아래와 같이 밝혔습니다.

 

"우리는 이 취약점이 npm 레지스트리에 대한 요청을 처리하는 여러 마이크로서비스의 일관성 없는 권한 부여 확인 및 데이터 유효성 검사로 인해 발생한 것이라고 판단했습니다. 이 경우 권한 부여 서비스는 요청 URL 경로에 전달된 데이터를 기반으로 사용자에게 부여된 패키지에 대한 권한을 적절히 검증했습니다.”

 

하지만 레지스트리 데이터에 대한 기본 업데이트를 수행하는 서비스가 업로드된 패키지 파일의 내용을 기반으로 게시할 패키지를 결정했습니다. 이로 인해 한 패키지를 위한 새로운 버전 게시 요청이 승인되지만, 사실은 다른 승인되지 않은 패키지가 이를 대신 수행할 수 있습니다.”

 

회사는 동일한 패키지가 인증 및 게시에 사용되도록 발행 서비스 및 권한 부여 서비스를 일관성 있게 수정하여 단 몇 시간 안에 취약점을 패치했습니다.

 

GitHub는 해당 취약점이 실제 공격에 악용되었는지 여부는 확인하지 못했습니다.

 

두 번째 취약점은 GitHub의 보안 팀이 10 26일 프로젝트의 공개적으로 사용 가능한 npm 서비스 중 하나의 정기 점검으로 인해 발생합니다.

 

해당 취약점은 npmjs의 복제 서버에서 '정기 점검'으로 인한 데이터 누출 이슈입니다. 누출로 인해 점검 기간 동안 개인 npm 패키지의 이름 목록이 노출되었습니다. 하지만 패키지의 내용은 동일한 기간에 노출되지 않았습니다.

 

10 26일에 공개적으로 사용 가능한 npm 서비스 중 하나의 정기 점검으로 인해 발생하는 문제를 확인했습니다. replicate.npmjs.com에서 공용 npm 복제본을 구동하는 데이터베이스를 점검하는 동안 개인 패키지의 이름을 노출할 수 있는 기록이 생성되었습니다.”

 

"이로써 replicate.npmjs.com의 소비자는 공개 변경 피드에 게시된 기록을 통해 개인 패키지의 이름을 잠재적으로 식별할 수 있었습니다. 해당 개인 패키지의 내용 및 기타 정보에는 접근할 수 없었습니다. 10 20일 이전에 생성된 비공개 패키지 중 패키지 이름 형식이 @owner/package인 경우 10 21 13:12:10Z UTC ~ 10 29 15:51:00Z UTC 사이에 노출되었습니다.”

 

이 취약점은 10 29일 해결되었으며, 회사는 npm의 복제 데이터베이스에서 개인 패키지 이름이 포함된 모든 기록을 삭제했습니다.

 

GitHub npm 레지스트리의 보안을 개선하기 위해 노력하고 있으며, 저장소에서 인기 있는 패키지 관리자를 위한 2단계 인증(2FA)을 도입할 계획입니다.

 

 

 

 

출처:

https://securityaffairs.co/wordpress/124671/security/github-npm-package-flaws.html

https://github.blog/2021-11-15-githubs-commitment-to-npm-ecosystem-security/

관련글 더보기

댓글 영역