🇰🇷 한글 설명
PHP CGI 모드에서 = 부호 없는 쿼리 문자열을 제대로 처리하지 않아, 공격자가 커맨드라인 옵션을 주입하여 임의 코드를 실행할 수 있는 취약점입니다. PHP 5.3.12 이전 버전과 5.4.2 이전 5.4.x 버전이 영향을 받습니다.
💡 쉬운 설명
PHP 웹 서버가 잘못된 웹 요청을 처리할 때, 공격자가 해킹 명령어를 숨겨서 보낼 수 있습니다. 이를 통해 서버의 파일을 변경하거나 시스템을 장악할 수 있습니다.
🇺🇸 원문 (English)
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not properly handle query strings that lack an = (equals sign) character, which allows remote attackers to execute arbitrary code by placing command-line options in the query string, related to lack of skipping a certain php_getopt for the 'd' case.
📍 영향받는 시스템
PHP < 5.3.12 및 PHP 5.4.x < 5.4.2 (CGI 모드로 구동되는 환경)
⚔️ 공격 벡터
= 부호 없는 쿼리 문자열에 커맨드라인 옵션(예: ?-d auto_prepend_file=shell.php)을 포함시켜 전송
🛡️ 대응 방법
PHP를 5.3.12 이상 또는 5.4.2 이상으로 즉시 업그레이드
🔧 검증 코드
출력된 버전이 5.3.12 미만이거나 5.4.0~5.4.1이면 취약한 상태입니다.
php -v 2>/dev/null | grep -oP 'PHP \K[0-9]+\.[0-9]+\.[0-9]+' | head -1