🇰🇷 한글 설명
pnpm 11.11.0 미만 및 10.34.5 미만 버전에서 pnpm-workspace.yaml 파일의 프록시 설정 내 환경 변수 치환 취약점이 발견되었습니다. 공격자가 제어하는 저장소를 클론하고 pnpm 명령어를 실행할 경우, NPM_TOKEN과 같은 민감한 환경 변수가 공격자의 서버로 유출될 수 있습니다.
💡 쉬운 설명
나쁜 의도를 가진 사람이 만든 프로젝트 파일을 다운로드하여 실행하면, 내 컴퓨터에 저장된 중요한 비밀번호나 인증 토큰이 해커에게 몰래 전송될 수 있는 문제입니다. 이는 pnpm이 설정 파일을 읽는 과정에서 자동으로 환경 변수를 풀어버리기 때문에 발생합니다.
🇺🇸 원문 (English)
pnpm versions 11.0.0 before 11.11.0 and 10.7.0 before 10.34.5 expand ${VAR} environment-variable placeholders in the httpProxy, httpsProxy, and noProxy settings read from a project's pnpm-workspace.yaml. Because the manifest is repository-controlled and the proxy keys were omitted from the request-destination key set that otherwise suppresses placeholder expansion for untrusted manifests (as already done for registry, pnprServer, registries and namedRegistries), an attacker who controls a repository's pnpm-workspace.yaml can cause a victim who clones the repository and runs a pnpm command (e.g. pnpm install) to expand environment secrets such as NPM_TOKEN or GITHUB_TOKEN into a proxy hostname or userinfo and route install traffic — and the corresponding DNS lookups — through an attacker-controlled host. The exfiltration occurs during configuration loading, before any lifecycle script executes. Fixed in pnpm 11.11.0 and 10.34.5.
📍 영향받는 시스템
pnpm versions 11.0.0 < 11.11.0, 10.7.0 < 10.34.5
⚔️ 공격 벡터
공격자가 조작한 pnpm-workspace.yaml 파일을 포함한 저장소를 유포하여 사용자가 pnpm 명령어를 실행하도록 유도
🛡️ 대응 방법
pnpm 버전을 11.11.0 또는 10.34.5 이상으로 업데이트
🔧 검증 코드
출력된 버전이 11.11.0 또는 10.34.5보다 낮은지 확인