🇰🇷 한글 설명
PHP 5.3.8의 zend_strndup 함수가 반환값을 검증하지 않아 비신뢰 문자열에 대한 strndup 작업 시 NULL 포인터 역참조를 유발할 수 있습니다. define 함수 및 ext/soap, ext/standard, ext/oci8, ext/com_dotnet, main 영역의 여러 함수가 영향을 받으며, 이를 통해 원격에서 애플리케이션 충돌(DoS)을 일으킬 수 있습니다.
💡 쉬운 설명
PHP 5.3.8에서 텍스트 복사 함수가 오류를 제대로 확인하지 않아, 공격자가 특수하게 조작된 입력값을 보내면 웹사이트가 크래시될 수 있습니다. 이는 웹 서비스 중단 공격으로 악용될 수 있습니다.
🇺🇸 원문 (English)
PHP 5.3.8 does not always check the return value of the zend_strndup function, which might allow remote attackers to cause a denial of service (NULL pointer dereference and application crash) via crafted input to an application that performs strndup operations on untrusted string data, as demonstrated by the define function in zend_builtin_functions.c, and unspecified functions in ext/soap/php_sdl.c, ext/standard/syslog.c, ext/standard/browscap.c, ext/oci8/oci8.c, ext/com_dotnet/com_typeinfo.c, and main/php_open_temporary_file.c.
📍 영향받는 시스템
PHP 5.3.8 및 해당 버전의 ext/soap, ext/standard, ext/oci8, ext/com_dotnet, main 모듈
⚔️ 공격 벡터
비신뢰 문자열 데이터를 define() 함수나 영향받는 모듈의 함수에 입력하여 NULL 포인터 역참조 발생
🛡️ 대응 방법
PHP를 5.3.8보다 최신 버전으로 업그레이드하고 입력값 검증 강화
🔧 검증 코드
출력된 PHP 버전이 5.3.8보다 높으면 안전, 5.3.8이면 즉시 패치 필요
php -v 2>/dev/null | grep -oP 'PHP \K[0-9.]+' || echo 'PHP not installed'