🇰🇷 한글 설명
PHP의 phar_parse_tarfile 함수가 tar 아카이브 파일명의 null 바이트 검증을 수행하지 않아 발생하는 취약점입니다. 조작된 tar 파일을 통해 정수 언더플로우와 메모리 손상을 야기할 수 있으며, 서비스 거부(DoS) 공격으로 이어집니다.
💡 쉬운 설명
PHP가 tar 형식 파일을 처리할 때 파일명 첫 글자가 특수 문자인지 확인하지 않습니다. 악의적으로 조작된 tar 파일을 업로드하면 프로그램이 메모리 오류로 인해 충돌할 수 있습니다.
🇺🇸 원문 (English)
The phar_parse_tarfile function in ext/phar/tar.c in PHP before 5.4.41, 5.5.x before 5.5.25, and 5.6.x before 5.6.9 does not verify that the first character of a filename is different from the \0 character, which allows remote attackers to cause a denial of service (integer underflow and memory corruption) via a crafted entry in a tar archive.
📍 영향받는 시스템
PHP 5.4.41 미만, PHP 5.5.0-5.5.24, PHP 5.6.0-5.6.8
⚔️ 공격 벡터
파일명이 null 바이트(\0)로 시작하는 특수한 tar 아카이브를 업로드하거나 처리하도록 유도
🛡️ 대응 방법
PHP를 5.4.41, 5.5.25, 5.6.9 이상의 버전으로 업그레이드
🔧 검증 코드
vulnerable이 출력되면 취약 버전입니다. 버전 번호가 위의 권장 버전 이상이면 패치 완료
php -v | grep -oE '5\.(4|5|6)\.[0-9]+' | awk -F. '{if($2==4 && $3<41 || $2==5 && $3<25 || $2==6 && $3<9) print "vulnerable"}'