🇰🇷 한글 설명
PHP의 get_icu_value_internal 함수에서 null 종료 문자를 확인하지 않아 메모리 범위 밖을 읽을 수 있는 취약점입니다. locale_get_primary_language 함수 호출 시 조작된 입력값으로 인해 서버 거부 또는 정보 유출이 발생할 수 있습니다.
💡 쉬운 설명
PHP의 언어 설정 관련 함수가 메모리 경계를 제대로 확인하지 않아서, 허용된 범위 밖의 메모리를 읽을 수 있습니다. 악용 시 서버가 중단되거나 민감한 정보가 노출됩니다.
🇺🇸 원문 (English)
The get_icu_value_internal function in ext/intl/locale/locale_methods.c in PHP before 5.5.36, 5.6.x before 5.6.22, and 7.x before 7.0.7 does not ensure the presence of a '\0' character, which allows remote attackers to cause a denial of service (out-of-bounds read) or possibly have unspecified other impact via a crafted locale_get_primary_language call.
📍 영향받는 시스템
PHP 5.5.36 이전, 5.6.0~5.6.22, 7.0.0~7.0.7
⚔️ 공격 벡터
locale_get_primary_language() 함수를 악의적으로 조작된 locale 파라미터와 함께 원격 호출
🛡️ 대응 방법
PHP를 5.5.36, 5.6.22, 7.0.7 이상으로 업그레이드
🔧 검증 코드
PHP 버전이 5.5.36, 5.6.22, 7.0.7 이상이면 패치됨, 그 이하면 취약함
php -v | grep -oE 'PHP [0-9]+\.[0-9]+\.[0-9]+' | awk '{print $2}'