🔍 CVE-2026-47763

0.0
CVSS Score
UNKNOWN
2026-08-04
2026-10-24 16:10
✅ 완료

🇰🇷 한글 설명

Python 패키지 및 의존성 관리자인 pdm 2.27.0 미만 버전에서 심볼릭 링크 보호 기능이 결여된 취약점이 발견되었습니다. 공격자가 악성 저장소에 심볼릭 링크로 구성된 파일을 배치할 경우, PDM 작업 시 사용자의 권한으로 임의의 파일을 덮어쓸 수 있는 파일 클로버(clobber) 공격이 가능합니다.

💡 쉬운 설명

프로그램이 파일을 저장할 때 해당 파일이 가짜 연결 통로(심볼릭 링크)인지 확인하지 않아 발생하는 문제입니다. 이를 통해 해커가 사용자의 중요한 파일을 몰래 수정하거나 망가뜨릴 수 있습니다.

🇺🇸 원문 (English)

pdm is a Python package and dependency manager supporting the latest PEP standards. In versions prior to 2.27.0, pdm writes several project-local state or configuration files without symlink protection. If a malicious repository places those files as symlinks, local PDM operations can overwrite the symlink targets. This creates an arbitrary file clobber primitive relative to the privileges of the invoking user. Config.__init__() resolves the project-local pdm.toml path and _save_config() writes to the resolved target. If PROJECT_ROOT/pdm.toml is a symlink to another file, pdm config -l ... updates the target file instead of refusing the write. The same general problem exists for other project-local persistence paths that are written directly with no lstat / O_NOFOLLOW protection. For the pdm.toml PoC specifically, the target file must already contain parseable TOML. Otherwise the load step fails before the write path is reached. That parser constraint does not apply to the .pdm-python or .python-version sinks. This issue has been fixed in version 2.27.0.

📍 영향받는 시스템

pdm versions prior to 2.27.0

⚔️ 공격 벡터

악성 저장소에 심볼릭 링크로 설정된 pdm.toml 또는 .pdm-python 파일을 배치하여 PDM 실행 유도

🛡️ 대응 방법

pdm를 최신 버전인 2.27.0 이상으로 업데이트

🔧 검증 코드

출력 결과가 'Vulnerable'이면 취약한 버전이며, 'Safe'이면 안전한 버전입니다.

Shell / Script
pdm --version 2>/dev/null | grep -E 'pdm [0-9]+\.[0-9]+\.[0-9]+' | awk '{print $2}' | awk -F. '{if ($1 < 2 || ($1 == 2 && $2 < 27)) print "Vulnerable"; else print "Safe"}'

💻 영향받는 소프트웨어

Python