
GitHub Advisory Database는 2026년 6월 27일 pnpm 패키지 관리자와 관련한 보안 권고 여러 건을 공개했다. 이번 권고는 잠금 파일과 패치 제거, hoisted install, stage download 처리 과정에서 경로 검증이 충분하지 않을 때 의도한 디렉터리 밖으로 파일 시스템 동작이 벗어날 수 있는 문제를 다룬다.
pnpm은 자바스크립트와 타입스크립트 생태계에서 널리 쓰이는 패키지 관리자다. 의존성 잠금 파일은 개발자가 저장소를 내려받아 설치할 때 그대로 신뢰되는 경우가 많기 때문에, 잠금 파일을 통해 경로 조작이 가능하다는 설명은 공급망 보안 관점에서 주의가 필요하다.
가장 높은 CVSS 3.1 점수를 받은 권고는 GHSA-w466-c33r-3gjp다. GitHub 권고는 프로젝트 env lockfile이 package-manager 해석을 우회해 lockfile이 선택한 pnpm 바이트를 실행하게 만들 수 있다고 설명했다. 해당 권고의 심각도는 High, CVSS 3.1 점수는 8.8로 표시됐다. 영향 범위는 pnpm 10.34.2 미만과 11.0.0 이상 11.5.3 미만이며, 각각 10.34.2와 11.5.3에서 패치됐다.
GHSA-qrv3-253h-g69c는 configDependencies env lockfile 처리 과정의 경로 순회 문제다. 권고에 따르면 조작된 pnpm-lock.yaml이 node_modules/.pnpm-config 밖에 심볼릭 링크를 만들 수 있다. 이 문제는 High로 분류됐고 CVSS 3.1 점수는 8.2다. pnpm 10.x 계열은 10.34.4, 11.x 계열은 11.8.0에서 패치 버전이 제시됐다.
이 밖에도 patch-remove가 patches 디렉터리 밖의 파일을 삭제할 수 있는 문제, hoisted install이 lockfile alias를 통해 node_modules 밖으로 파일을 가져올 수 있는 문제, stage download가 manifest name 또는 version 값을 통해 대상 디렉터리 밖에 쓸 수 있는 문제도 High 등급으로 등록됐다. 각각의 패치 버전은 권고별로 다르지만, 10.x 사용자는 10.34.4 이상, 11.x 사용자는 최소 11.8.0 이상으로 올리는 것이 여러 권고를 함께 피하는 가장 단순한 대응이다.
이번 권고에서 주목할 부분은 생명주기 스크립트 실행 여부와 별개로 설치·패치·다운로드 경로 자체가 공격 표면이 될 수 있다는 점이다. 패키지 관리자 보안은 악성 패키지의 postinstall 스크립트 차단만으로 끝나지 않는다. 저장소에 포함된 잠금 파일, 패치 파일 경로, 글로벌·로컬 설치 설정도 검증 대상에 포함돼야 한다.
공개 권고 기준으로 실제 공격 악용 여부는 확인되지 않았다. 다만 영향을 받는 범위가 개발 환경과 CI 설치 흐름에 걸쳐 있을 수 있어, 조직은 pnpm 버전을 확인하고 잠금 파일 변경이 포함된 pull request를 더 엄격하게 검토할 필요가 있다. 특히 외부 기여자의 저장소나 샘플 프로젝트를 실행하는 환경에서는 패키지 관리자 자체를 최신 패치 버전으로 고정하는 것이 우선 조치다.
출처: GitHub Advisory Database https://github.com/advisories/GHSA-w466-c33r-3gjp
출처: GitHub Advisory Database https://github.com/advisories/GHSA-qrv3-253h-g69c
출처: GitHub Advisory Database https://github.com/advisories/GHSA-72r4-9c5j-mj57
출처: GitHub Advisory Database https://github.com/advisories/GHSA-fr4h-3cph-29xv
출처: GitHub Advisory Database https://github.com/advisories/GHSA-v23m-ccfg-pq9h