🇰🇷 한글 설명
PHP 5.2.1 이전 및 PHP 4.4.5 이전의 WDDX 역직렬화 기능에서 숫자형 키의 key_length 변수가 제대로 초기화되지 않는 취약점이다. 공격자는 문자열 이름의 변수 앞에 숫자 변수가 있는 wddxPacket 요소를 통해 스택 메모리를 읽을 수 있다.
💡 쉬운 설명
PHP의 WDDX 데이터 형식 처리 기능에 버그가 있어서 공격자가 메모리에서 민감한 정보를 읽을 수 있습니다. 특정 방식으로 만든 WDDX 패킷을 보내면 서버의 메모리 내용이 노출됩니다.
🇺🇸 원문 (English)
The WDDX deserializer in the wddx extension in PHP 5 before 5.2.1 and PHP 4 before 4.4.5 does not properly initialize the key_length variable for a numerical key, which allows context-dependent attackers to read stack memory via a wddxPacket element that contains a variable with a string name before a numerical variable.
📍 영향받는 시스템
PHP 5.0.0 ~ 5.2.0, PHP 4.0.0 ~ 4.4.4
⚔️ 공격 벡터
WDDX 역직렬화 기능에 특별히 조작된 wddxPacket 입력을 전송하여 스택 메모리 정보 유출
🛡️ 대응 방법
PHP 5.2.1 이상 또는 PHP 4.4.5 이상으로 업그레이드
🔧 검증 코드
위 명령어가 'Vulnerable'을 출력하면 PHP 버전이 취약함을 의미하고, 'Patched'를 출력하면 패치된 상태입니다.
php -v 2>/dev/null | grep -oP 'PHP \K[0-9]+\.[0-9]+\.[0-9]+' | awk -F. '{if ($1==5 && $2<2) print "Vulnerable"; else if ($1==4 && $2<4) print "Vulnerable"; else print "Patched"}'