🔍 CVE-2026-23888

6.5
CVSS Score
MEDIUM
2026-01-26
2026-06-17 10:22
✅ 완료

🇰🇷 한글 설명

pnpm은 패키지 관리자입니다. 버전 10.28.1 이전의 pnpm에는 경로 조작 취약점이 있어 악성 패키지가 의도된 추출 디렉토리 외부의 파일을 작성할 수 있습니다.

💡 쉬운 설명

pnpm 패키지 관리자의 취약점으로 인해 악성 패키지가 시스템의 중요한 파일을 덮어쓸 수 있습니다. 이는 원격 코드 실행(RCE)로 이어질 수 있습니다. pnpm 버전 10.28.1 이전의 모든 사용자에게 영향을 미칩니다.

🇺🇸 원문 (English)

pnpm is a package manager. Prior to version 10.28.1, a path traversal vulnerability in pnpm's binary fetcher allows malicious packages to write files outside the intended extraction directory. The vulnerability has two attack vectors: (1) Malicious ZIP entries containing `../` or absolute paths that escape the extraction root via AdmZip's `extractAllTo`, and (2) The `BinaryResolution.prefix` field is concatenated into the extraction path without validation, allowing a crafted prefix like `../../evil` to redirect extracted files outside `targetDir`. The issue impacts all pnpm users who install packages with binary assets, users who configure custom Node.js binary locations and CI/CD pipelines that auto-install binary dependencies. It can lead to overwriting config files, scripts, or other sensitive files leading to RCE. Version 10.28.1 contains a patch.

📍 영향받는 시스템

pnpm 버전 10.28.1 이전의 모든 시스템

⚔️ 공격 벡터

악성 ZIP 엔트리 또는 BinaryResolution.prefix 필드의 조작

🛡️ 대응 방법

pnpm 버전을 10.28.1 이상으로 업데이트합니다.

🔧 검증 코드

로컬 시스템에서 Python이 설치되어 있는지 확인합니다. 코드를 실행하기 전에 관리자 권한이 필요하지 않습니다. Python이 설치되어 있지 않으면 설치 후에 다시 시도합니다.

Shell / Script
python -c "import pkg_resources; print('pnpm' in [d.project_name for d in pkg_resources.working_set] and pkg_resources.get_distribution('pnpm').version < '10.28.1')" && echo {"result": "취약", "reason": "pnpm 버전이 10.28.1 미만"} || echo {"result": "양호", "reason": "pnpm 버전이 10.28.1 이상"}

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N

💻 영향받는 소프트웨어

Node.js