🇰🇷 한글 설명
PHP 4.0.0~4.4.6 및 5.0.0~5.2.1에서 사용자 공간 에러 핸들러로 인한 중단 상황을 이용하여 임의의 메모리 위치를 읽을 수 있는 취약점이다. iptcembed 함수가 이 문제의 주요 진입점으로 작동하며, convert_to_* 함수군이 영향을 받는다.
💡 쉬운 설명
PHP의 특정 버전에서 에러 발생 시점을 악용하면 서버 메모리의 암호, 토큰, 개인정보 등을 직접 읽어낼 수 있다. 인터럽트를 통해 포인터 조작이 가능해지면서 보호된 메모리 영역까지 접근할 수 있게 된다.
🇺🇸 원문 (English)
PHP 4.0.0 through 4.4.6 and 5.0.0 through 5.2.1 allows context-dependent attackers to read arbitrary memory locations via an interruption that triggers a user space error handler that changes a parameter to an arbitrary pointer, as demonstrated via the iptcembed function, which calls certain convert_to_* functions with its input parameters.
📍 영향받는 시스템
PHP 4.0.0~4.4.6, 5.0.0~5.2.1
⚔️ 공격 벡터
iptcembed() 또는 convert_to_* 함수 호출 중 인터럽트 신호로 에러 핸들러를 트리거하여 임의 포인터 참조
🛡️ 대응 방법
PHP를 4.4.7 이상 또는 5.2.2 이상으로 즉시 업그레이드, 사용자 입력 검증 강화, disable_functions로 iptcembed 비활성화
🔧 검증 코드
PHP 버전이 4.4.7 미만 또는 5.0~5.2.1 범위면 취약함, 5.2.2 이상이면 패치됨
php -v 2>/dev/null | head -1 | grep -oP 'PHP \K[0-9]+\.[0-9]+\.[0-9]+'