🇰🇷 한글 설명
PHP 8.2.31, 8.3.31, 8.4.21, 8.5.6 이전 버전에서 SOAP 서버의 typemap 디코딩 과정이 잘못된 변수를 검사하여 NULL 포인터 역참조를 유발합니다. 이를 통해 원격 공격자가 인증 없이 PHP SOAP 서버를 충돌시켜 서비스 거부(DoS) 공격을 수행할 수 있습니다.
💡 쉬운 설명
PHP의 SOAP 서버에 특정 메시지를 보내면 프로그램이 충돌합니다. 누구나 인터넷에서 이 공격을 할 수 있어 웹 서비스를 중단시킬 수 있습니다.
🇺🇸 원문 (English)
In PHP versions 8.2.* before 8.2.31, 8.3.* before 8.3.31, 8.4.* before 8.4.21, and 8.5.* before 8.5.6, when a SOAP server has a typemap configured, the decoding process contains a mistake which checks the wrong variable in case of missing value element. This leads to dereferences a NULL pointer, causing a segmentation fault. This allows a remote unauthenticated attacker to crash the PHP SOAP server process, resulting in denial of service.
📍 영향받는 시스템
PHP 8.2.x (< 8.2.31), 8.3.x (< 8.3.31), 8.4.x (< 8.4.21), 8.5.x (< 8.5.6)
⚔️ 공격 벡터
SOAP typemap이 설정된 서버에 특수 조작된 XML/SOAP 요청을 전송하여 서버 프로세스 충돌 유발
🛡️ 대응 방법
PHP를 8.2.31, 8.3.31, 8.4.21, 8.5.6 이상으로 업그레이드하거나 SOAP typemap 사용을 비활성화
🔧 검증 코드
현재 PHP 버전을 확인하여 8.2.31, 8.3.31, 8.4.21, 8.5.6 이상인지 검증 필요
php -v 2>/dev/null | grep -oE 'PHP [0-9]+\.[0-9]+\.[0-9]+' | head -1