🇰🇷 한글 설명
PHP 5.2.6 이하의 ZipArchive::extractTo 함수에서 ZIP 파일의 파일명에 포함된 .. 시퀀스를 검증하지 않아 디렉토리 순회 공격이 가능합니다. 공격자는 악의적인 ZIP 파일을 통해 임의의 위치에 파일을 작성할 수 있습니다.
💡 쉬운 설명
ZIP 파일을 풀 때 파일명이 부모 디렉토리로 이동하는 경로(../)를 포함하면, 의도하지 않은 위치에 파일이 저장될 수 있습니다. 예를 들어 "../../etc/passwd" 같은 파일명이 있는 ZIP을 추출하면 보호되어야 할 영역에 파일이 쓰일 수 있습니다.
🇺🇸 원문 (English)
Directory traversal vulnerability in the ZipArchive::extractTo function in PHP 5.2.6 and earlier allows context-dependent attackers to write arbitrary files via a ZIP file with a file whose name contains .. (dot dot) sequences.
📍 영향받는 시스템
PHP 5.2.6 이하 (5.2.x, 5.1.x, 5.0.x)
⚔️ 공격 벡터
파일명에 .. 시퀀스가 포함된 악의적인 ZIP 파일을 대상 시스템의 extractTo() 함수로 추출하도록 유도
🛡️ 대응 방법
PHP를 5.2.7 이상으로 업그레이드하거나, extractTo() 사용 전 파일명의 경로 순회 시퀀스를 필터링
🔧 검증 코드
출력된 PHP 버전이 5.2.7 이상이면 취약점이 패치되었습니다. 5.2.6 이하면 즉시 업그레이드 필요
php -v 2>/dev/null | grep -oP 'PHP \K[0-9.]+'