🔍 CVE-2012-2311

7.5
CVSS Score
HIGH
2012-05-11
2026-04-29 01:13
✅ 완료

🇰🇷 한글 설명

PHP를 CGI로 실행할 때 특정 형식의 쿼리 문자열을 부적절하게 처리하는 취약점입니다. 공격자가 %3D 문자(URL 인코딩된 = 기호)를 포함하면서 실제 = 기호는 없는 쿼리 문자열을 전송하여 PHP 명령어 옵션을 주입하고 임의 코드를 실행할 수 있습니다.

💡 쉬운 설명

PHP 웹서버에 특수하게 만든 URL을 보내면 공격자가 원하는 코드가 실행됩니다. PHP 5.3.13 미만, 5.4.2 이하 버전의 CGI 모드에서만 가능합니다.

🇺🇸 원문 (English)

sapi/cgi/cgi_main.c in PHP before 5.3.13 and 5.4.x before 5.4.3, when configured as a CGI script (aka php-cgi), does not properly handle query strings that contain a %3D sequence but no = (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. NOTE: this vulnerability exists because of an incomplete fix for CVE-2012-1823.

📍 영향받는 시스템

PHP 5.3.13 이전, 5.4.0~5.4.2 (CGI 모드로 실행되는 경우)

⚔️ 공격 벡터

HTTP 쿼리 문자열에 %3D를 포함하면서 = 기호가 없는 형식으로 php-cgi 파라미터 주입

🛡️ 대응 방법

PHP를 5.3.13 이상, 5.4.3 이상으로 업그레이드하거나 CGI 모드 대신 mod_php/php-fpm 사용

🔧 검증 코드

위 명령어가 PHP 버전을 출력하면 취약한 버전입니다. 버전이 5.3.13 이상, 5.4.3 이상이면 패치됨

Shell / Script
php -v | grep -E '(5\.[34]\.|5\.3\.[0-9]|5\.4\.[0-2])'

📊 CVSS Vector String

CVSS Vector
AV:N/AC:L/Au:N/C:P/I:P/A:P

💻 영향받는 소프트웨어

PHP