🔍 CVE-2026-24056

0.0
CVSS Score
UNKNOWN
2026-01-26
2026-01-27 14:59
✅ 완료

🇰🇷 한글 설명

pnpm 패키지 관리자의 취약점으로, `file:` 또는 `git:` 종속성을 설치할 때 심볼릭 링크를 따라가고 그 대상 내용을 패키지 루트에 제한하지 않아 로컬 데이터가 누출될 수 있다.

💡 쉬운 설명

pnpm 패키지 관리자의 취약점은 로컬 파일이나 Git 종속성을 설치할 때 발생하며, 심볼릭 링크를 통해 중요한 파일의 내용을 node_modules에 복사할 수 있다. 이는 개발자와 CI/CD 파이프라인에 영향을 미친다.

🇺🇸 원문 (English)

pnpm is a package manager. Prior to version 10.28.2, when pnpm installs a `file:` (directory) or `git:` dependency, it follows symlinks and reads their target contents without constraining them to the package root. A malicious package containing a symlink to an absolute path (e.g., `/etc/passwd`, `~/.ssh/id_rsa`) causes pnpm to copy that file's contents into `node_modules`, leaking local data. The vulnerability only affects `file:` and `git:` dependencies. Registry packages (npm) have symlinks stripped during publish and are NOT affected. The issue impacts developers installing local/file dependencies andCI/CD pipelines installing git dependencies. It can lead to credential theft via symlinks to `~/.aws/credentials`, `~/.npmrc`, `~/.ssh/id_rsa`. Version 10.28.2 contains a patch.

📍 영향받는 시스템

pnpm 버전 10.28.2 이전

⚔️ 공격 벡터

pnpm을 사용하여 로컬 파일이나 Git 종속성을 설치할 때 발생하는 취약점

🛡️ 대응 방법

pnpm 버전을 10.28.2 이상으로 업데이트하여 취약점을 해결한다.

🔧 검증 코드

로컬 시스템에서 Python을 설치하고, 위의 코드를 verification.py로 저장한 후, 터미널에서 python verification.py를 실행한다. 결과는 JSON 형식으로 출력되며, pnpm 버전이 10.28.2 이상인지 확인한다.

Shell / Script
import subprocess
result = subprocess.run(['pnpm', '--version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
version = result.stdout.decode('utf-8').strip()
if version >= '10.28.2':
    print({"result": "양호", "reason": "pnpm 버전이 10.28.2 이상"})
else:
    print({"result": "취약", "reason": "pnpm 버전이 10.28.2 미만"})

💻 영향받는 소프트웨어

Git