🇰🇷 한글 설명
PHP 4.4.4 및 이전 버전의 unserialize() 함수에서 긴 문자열 처리 시 ZVAL 참조 카운터의 정수 오버플로우가 발생하는 취약점이다. 원격 공격자가 특별히 제작한 직렬화된 데이터를 전송하여 메모리 손상을 유발하고 임의의 코드를 실행할 수 있다.
💡 쉬운 설명
PHP에서 저장된 데이터를 복원할 때 매우 긴 데이터가 들어오면 내부 계산에서 숫자가 너무 커져서 오류가 난다. 공격자는 이를 이용해 서버에서 악의적인 명령을 실행할 수 있다.
🇺🇸 원문 (English)
Integer overflow in PHP 4.4.4 and earlier allows remote context-dependent attackers to execute arbitrary code via a long string to the unserialize function, which triggers the overflow in the ZVAL reference counter.
📍 영향받는 시스템
PHP 4.4.4 이전 버전 (4.x 시리즈)
⚔️ 공격 벡터
원격 공격자가 HTTP 요청, POST 데이터, 쿠키 등을 통해 특별히 제작된 직렬화 문자열을 전송
🛡️ 대응 방법
PHP를 4.4.5 이상으로 업그레이드하거나 unserialize() 함수 사용을 피하고 JSON 등 안전한 형식 사용
🔧 검증 코드
출력된 PHP 버전이 4.4.5 이상이면 안전하고, 4.4.4 이하이면 취약함
php -v | grep -oP 'PHP \K[0-9]+\.[0-9]+\.[0-9]+'