🇰🇷 한글 설명
PHP 5.2.7 이전 버전에서 SAPI의 php_getuid 함수가 사용하는 page_uid와 page_gid 전역변수가 제대로 초기화되지 않아 발생하는 취약점입니다. 공격자는 error_log와 같이 root만 설정할 수 있어야 하는 변수를 변경하여 safe_mode 보안 제한을 우회할 수 있습니다.
💡 쉬운 설명
PHP 프로그램이 사용자 권한을 제대로 확인하지 않아서, 일반 사용자가 관리자만 변경할 수 있어야 하는 설정을 바꿀 수 있게 되는 문제입니다. 이를 통해 시스템의 안전장치(safe_mode)를 무시할 수 있습니다.
🇺🇸 원문 (English)
PHP 5 before 5.2.7 does not properly initialize the page_uid and page_gid global variables for use by the SAPI php_getuid function, which allows context-dependent attackers to bypass safe_mode restrictions via variable settings that are intended to be restricted to root, as demonstrated by a setting of /etc for the error_log variable.
📍 영향받는 시스템
PHP 5.0.0 ~ 5.2.6 (5.2.7 이상에서 패치됨)
⚔️ 공격 벡터
로컬 공격자가 PHP 설정 변수를 조작하여 safe_mode 제한 우회
🛡️ 대응 방법
PHP를 5.2.7 이상으로 업그레이드하거나, safe_mode 사용 중지 후 suhosin 같은 대체 보안 패치 적용
🔧 검증 코드
PHP 버전을 확인하여 5.2.7 미만이면 취약, 5.2.7 이상이면 패치된 상태입니다.
php -v | grep -oP 'PHP \K[0-9]+\.[0-9]+\.[0-9]+' | awk '{if ($1 < "5.2.7") print "Vulnerable"; else print "Patched"}'