🔍 CVE-2009-4018

7.5
CVSS Score
HIGH
2009-11-29
2026-04-23 00:35
✅ 완료

🇰🇷 한글 설명

PHP의 proc_open 함수가 safe_mode 보안 제한(safe_mode_allowed_env_vars, safe_mode_protected_env_vars)을 제대로 적용하지 않아, 공격자가 env 파라미터를 통해 LD_LIBRARY_PATH 등의 환경 변수를 조작하여 임의의 프로그램을 실행할 수 있는 취약점입니다.

💡 쉬운 설명

PHP에서 다른 프로그램을 실행할 때 보안 설정을 무시하는 버그가 있어, 악의적 사용자가 환경 변수를 조작해 권한 없이 프로그램을 강제 실행시킬 수 있습니다. 마치 도어락의 보안 기능이 작동하지 않는 것과 같습니다.

🇺🇸 원문 (English)

The proc_open function in ext/standard/proc_open.c in PHP before 5.2.11 and 5.3.x before 5.3.1 does not enforce the (1) safe_mode_allowed_env_vars and (2) safe_mode_protected_env_vars directives, which allows context-dependent attackers to execute programs with an arbitrary environment via the env parameter, as demonstrated by a crafted value of the LD_LIBRARY_PATH environment variable.

📍 영향받는 시스템

PHP 5.2.11 이전 및 PHP 5.3.0-5.3.1 버전

⚔️ 공격 벡터

proc_open() 함수의 env 파라미터를 통해 LD_LIBRARY_PATH, LD_PRELOAD 등 환경 변수 주입

🛡️ 대응 방법

PHP를 5.2.11 이상 또는 5.3.1 이상으로 즉시 업그레이드

🔧 검증 코드

결과가 출력되면 취약한 버전. 출력 없으면 안전. 예: 'PHP 5.2.10' 출력 시 취약점 존재

Shell / Script
php -v 2>/dev/null | grep -oE 'PHP [0-9]+\.[0-9]+\.[0-9]+' | grep -E '(5\.2\.[0-9]|5\.3\.[01])$'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

PHP