🇰🇷 한글 설명
pnpm 패키지 관리자의 특정 버전에서 scoped path traversal 취약점이 발견되었습니다. 공격자가 조작된 tarball의 package.json 이름을 통해 node_modules 외부의 임의 파일 경로에 파일을 덮어쓸 수 있으며, 이는 코드 실행으로 이어질 수 있습니다.
💡 쉬운 설명
pnpm을 사용할 때 악성 패키지를 설치하면 컴퓨터의 중요한 시스템 파일을 몰래 바꿀 수 있는 보안 구멍이 있습니다. 이로 인해 해커가 사용자의 컴퓨터에서 원하지 않는 명령을 실행하게 만들 수 있습니다.
🇺🇸 원문 (English)
pnpm is a package manager. Prior to 10.34.5 and 11.11.0, pnpm accepts a scoped path traversal in a tarball dependency's package.json manifest name because pnpm11/resolving/npm-resolver/src/pickPackage.ts rejects slash characters only for unscoped names. During pnpm install, the unvalidated name reaches raw path joins in pnpm11/installing/deps-resolver/src/resolvePeers.ts, pnpm11/installing/deps-resolver/src/index.ts, and pnpm11/deps/graph-builder/src/lockfileToDepGraph.ts, causing package extraction outside node_modules and allowing attacker-controlled files to overwrite arbitrary filesystem paths even when --ignore-scripts is used. The overwrite can replace shell startup files, Git hooks, or installed package code and lead to code execution. This issue is fixed in versions 10.34.5, and 11.11.0.
📍 영향받는 시스템
pnpm versions prior to 10.34.5 and 11.11.0
⚔️ 공격 벡터
조작된 scoped name을 포함한 tarball 의존성을 설치하여 파일 시스템 경로를 조작함
🛡️ 대응 방법
pnpm을 10.34.5 또는 11.11.0 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 10.34.5 미만이거나 11.11.0 미만인 경우 취약한 상태입니다.