🇰🇷 한글 설명
PHP 5.2.6 이전 버전의 escapeshellcmd() 함수가 불완전한 멀티바이트 문자를 올바르게 처리하지 못해 발생하는 보안 취약점입니다. 공격자가 특수 제작된 멀티바이트 문자를 포함한 입력값을 통해 셸 명령 주입을 수행할 수 있습니다.
💡 쉬운 설명
PHP에서 사용자 입력을 안전하게 처리하는 함수에 결함이 있어서 공격자가 악의적인 명령어를 실행할 수 있습니다. 특정 언어의 문자들을 제대로 필터링하지 못하는 문제입니다.
🇺🇸 원문 (English)
The escapeshellcmd API function in PHP before 5.2.6 has unknown impact and context-dependent attack vectors related to "incomplete multibyte chars."
📍 영향받는 시스템
PHP 5.2.6 이전 모든 버전
⚔️ 공격 벡터
멀티바이트 인코딩 문자(예: UTF-8, EUC-KR)를 포함한 악의적 입력을 escapeshellcmd()에 전달하여 필터링 우회 후 셸 명령 주입 수행
🛡️ 대응 방법
PHP를 5.2.6 이상으로 업그레이드 또는 escapeshellarg() 함수로 대체 사용
🔧 검증 코드
PHP 버전이 5.2.6 이상이면 취약점 없음, 5.2.6 미만이면 즉시 업그레이드 필요
php -v 2>/dev/null | grep -oE 'PHP [0-9]+\.[0-9]+\.[0-9]+'