🇰🇷 한글 설명
PHP의 move_uploaded_file 함수가 null byte(\x00) 문자를 만나면 경로를 잘라버리는 취약점으로, 공격자가 파일 확장자 제한을 우회하여 악의적인 파일을 생성할 수 있습니다. CVE-2006-7243의 불완전한 패치로 인해 재발생한 취약점입니다.
💡 쉬운 설명
파일을 업로드할 때 특수 문자를 사용하면 시스템이 파일명을 잘못 인식해서 원하지 않는 파일이 생성될 수 있습니다. 예를 들어 .jpg 파일이라고 속여도 실제로는 악의적인 .php 파일이 만들어질 수 있습니다.
🇺🇸 원문 (English)
The move_uploaded_file implementation in ext/standard/basic_functions.c in PHP before 5.4.39, 5.5.x before 5.5.23, and 5.6.x before 5.6.7 truncates a pathname upon encountering a \x00 character, which allows remote attackers to bypass intended extension restrictions and create files with unexpected names via a crafted second argument. NOTE: this vulnerability exists because of an incomplete fix for CVE-2006-7243.
📍 영향받는 시스템
PHP 5.4.39 이전, 5.5.x (5.5.23 미만), 5.6.x (5.6.7 미만)
⚔️ 공격 벡터
업로드 폼을 통해 null byte가 포함된 파일명(예: shell.php%00.jpg)으로 파일 업로드 요청
🛡️ 대응 방법
PHP를 5.4.39, 5.5.23, 5.6.7 이상으로 업그레이드
🔧 검증 코드
현재 PHP 버전이 5.4.39 이상, 5.5.23 이상, 또는 5.6.7 이상이면 취약점이 패치된 상태입니다.
php -v | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'