🇰🇷 한글 설명
PHP의 WDDX 확장 기능에서 php_wddx_push_element 함수가 잘못된 boolean 요소를 포함한 WDDX XML 문서를 부적절하게 처리할 때 발생하는 취약점입니다. wddx_deserialize 호출 시 메모리 접근 오류와 범위를 벗어난 읽기가 발생하여 서비스 거부 또는 임의 코드 실행 가능성이 있습니다.
💡 쉬운 설명
PHP에서 특정 형식의 데이터 파일(WDDX)을 처리할 때 오류가 발생하는 문제입니다. 공격자가 악의적으로 조작된 파일을 보내면 웹서버가 충돌하거나 제어될 수 있습니다.
🇺🇸 원문 (English)
The php_wddx_push_element function in ext/wddx/wddx.c in PHP before 5.6.26 and 7.x before 7.0.11 allows remote attackers to cause a denial of service (invalid pointer access and out-of-bounds read) or possibly have unspecified other impact via an incorrect boolean element in a wddxPacket XML document, leading to mishandling in a wddx_deserialize call.
📍 영향받는 시스템
PHP 5.6.26 이전 버전 및 PHP 7.0.11 이전 버전
⚔️ 공격 벡터
잘못된 boolean 요소가 포함된 WDDX XML 패킷을 원격으로 전송하여 wddx_deserialize 함수 실행 유도
🛡️ 대응 방법
PHP를 5.6.26 이상 또는 7.0.11 이상으로 업그레이드하거나, WDDX 확장이 불필요하면 비활성화
🔧 검증 코드
PHP 버전이 5.6.26 미만 또는 7.0.11 미만이고 wddx가 출력되면 취약; 그 이상 버전이면 안전
php -v 2>/dev/null | grep -oE '(5\.6\.[0-9]+|7\.0\.[0-9]+)' && php -m 2>/dev/null | grep -i wddx