🇰🇷 한글 설명
PHP 5.3.6 이전 버전의 Zip 확장 프로그램에서 _zip_name_locate 함수가 ZIPARCHIVE::FL_UNCHANGED 인자를 제대로 처리하지 못해 NULL 포인터 역참조 발생. 빈 ZIP 아카이브 파일에 대해 locateName() 또는 statName() 작업을 수행할 때 서비스 거부(DoS) 공격 가능.
💡 쉬운 설명
PHP의 ZIP 파일 처리 기능에 버그가 있어서 빈 ZIP 파일을 열 때 프로그램이 충돌합니다. 공격자가 특수한 빈 ZIP 파일을 보내서 웹사이트를 다운시킬 수 있습니다.
🇺🇸 원문 (English)
The _zip_name_locate function in zip_name_locate.c in the Zip extension in PHP before 5.3.6 does not properly handle a ZIPARCHIVE::FL_UNCHANGED argument, which might allow context-dependent attackers to cause a denial of service (NULL pointer dereference) via an empty ZIP archive that is processed with a (1) locateName or (2) statName operation.
📍 영향받는 시스템
PHP 5.3.6 이전 버전의 Zip 확장
⚔️ 공격 벡터
특수하게 조작된 빈 ZIP 아카이브 파일을 locateName() 또는 statName() 메서드로 처리
🛡️ 대응 방법
PHP를 5.3.6 이상으로 즉시 업그레이드
🔧 검증 코드
PHP 버전이 5.3.6 이상이면 안전, 5.3.6 미만이면 취약
php -v | grep -oE 'PHP [0-9]+\.[0-9]+\.[0-9]+'