🇰🇷 한글 설명
PHP의 strtod 함수가 특정 부동소수점 값(2.2250738585072011e-308)을 처리할 때 x87 FPU 레지스터에서 무한 루프가 발생하여 서비스 거부 공격으로 이어질 수 있습니다. 영향받는 버전은 PHP 5.2.17 미만 및 5.3.5 미만입니다.
💡 쉬운 설명
PHP에서 특정 형태의 숫자를 입력받으면 프로그램이 멈춰버리는 버그입니다. 공격자가 이 숫자를 보내면 웹 서버가 응답하지 않게 됩니다.
🇺🇸 원문 (English)
strtod.c, as used in the zend_strtod function in PHP 5.2 before 5.2.17 and 5.3 before 5.3.5, and other products, allows context-dependent attackers to cause a denial of service (infinite loop) via a certain floating-point value in scientific notation, which is not properly handled in x87 FPU registers, as demonstrated using 2.2250738585072011e-308.
📍 영향받는 시스템
PHP 5.2.0~5.2.16, PHP 5.3.0~5.3.4
⚔️ 공격 벡터
2.2250738585072011e-308와 같은 특정 과학 표기법 부동소수점 값을 입력하여 무한 루프 유발
🛡️ 대응 방법
PHP를 5.2.17 이상 또는 5.3.5 이상으로 업그레이드
🔧 검증 코드
PHP 버전이 5.2.17 이상 또는 5.3.5 이상이면 안전, 그 이하면 취약함
php -v | grep -oE 'PHP [0-9]+\.[0-9]+\.[0-9]+'