🇰🇷 한글 설명
Patool 4.0.5 미만 버전의 safe_extract() 함수에서 경로 탐색 취약점이 발견되었습니다. Python 3.12 미만 환경에서 os.path.commonprefix()를 사용하여 경로를 검증할 때 문자 단위로 비교하는 오류가 발생하여, 조작된 아카이브를 통해 임의의 파일 쓰기가 가능합니다.
💡 쉬운 설명
압축 파일을 풀 때 파일이 지정된 폴더 밖으로 나가지 못하게 막는 검사 기능에 허점이 있습니다. 공격자가 특수하게 만든 압축 파일을 보내면 컴퓨터의 엉뚱한 위치에 악성 파일을 저장할 수 있습니다.
🇺🇸 원문 (English)
Patool before 4.0.5 contains a path traversal vulnerability in the safe_extract() function in patoolib/programs/py_tarfile.py when running on Python before 3.12, where the is_within_directory() helper uses os.path.commonprefix() for character-level string comparison instead of path-level comparison, allowing a crafted archive member path to bypass the containment check. Attackers can supply a malicious archive with specially crafted member paths to write arbitrary files.
📍 영향받는 시스템
Patool 4.0.5 미만 버전 및 Python 3.12 미만 환경
⚔️ 공격 벡터
조작된 경로를 포함한 악성 아카이브 파일을 제공하여 경로 검증 우회 및 임의 파일 쓰기 수행
🛡️ 대응 방법
Patool을 4.0.5 이상 버전으로 업데이트하거나 Python 버전을 3.12 이상으로 업그레이드하십시오.
🔧 검증 코드
출력된 버전이 4.0.5 미만이면 해당 취약점에 노출된 상태입니다.
pip show patool | grep Version