🇰🇷 한글 설명
PHP 5.4.0 이전의 rfc1867.c 파일 업로드 구현에서 파일명의 [ (열린 대괄호) 문자를 제대로 처리하지 못하여, 악의적인 파일명을 포함한 다중 파일 업로드를 통해 원격 공격자가 $_FILES 배열을 손상시키거나 디렉토리 트래버설 공격을 수행할 수 있습니다. 파일명 검증이 부족한 스크립트에서 특히 취약합니다.
💡 쉬운 설명
PHP 웹서버가 파일을 여러 개 업로드할 때 파일명에 특수문자([ )가 있으면 서버가 혼동되어 장애를 일으키거나 다른 폴더의 파일에 접근할 수 있습니다. PHP 5.4.0 이전 버전에서 이 검증이 제대로 안 되어 발생합니다.
🇺🇸 원문 (English)
The file-upload implementation in rfc1867.c in PHP before 5.4.0 does not properly handle invalid [ (open square bracket) characters in name values, which makes it easier for remote attackers to cause a denial of service (malformed $_FILES indexes) or conduct directory traversal attacks during multi-file uploads by leveraging a script that lacks its own filename restrictions.
📍 영향받는 시스템
PHP 5.4.0 이전의 모든 버전 (5.3.x, 5.2.x 등)
⚔️ 공격 벡터
파일명에 [ 문자를 포함한 여러 파일을 동시에 업로드하여 $_FILES 배열 오염 또는 경로 조작을 통한 디렉토리 트래버설
🛡️ 대응 방법
PHP를 5.4.0 이상으로 업그레이드하거나 파일 업로드 처리 부분에서 파일명 유효성 검사 및 필터링 로직 추가
🔧 검증 코드
버전이 5.4.0 이상이면 안전, 5.3.x 이하면 취약함 - 업그레이드 필요
php -v | grep -oP 'PHP \K[0-9.]+' | head -1