🇰🇷 한글 설명
PHP의 fpm_log.c에서 snprintf 함수의 반환값을 잘못 해석하여 발생하는 취약점입니다. 공격자가 긴 REQUEST_URI 등을 통해 버퍼 오버플로우를 유발하여 메모리의 민감한 정보를 유출하거나 서비스 거부 공격을 수행할 수 있습니다.
💡 쉬운 설명
PHP 웹 서버가 매우 긴 URL이나 요청을 처리할 때 메모리에서 데이터를 읽어버리거나 충돌할 수 있는 버그입니다. 해커가 특수한 긴 문자열을 보내서 서버 정보를 빼내거나 서버를 다운시킬 수 있습니다.
🇺🇸 원문 (English)
sapi/fpm/fpm/fpm_log.c in PHP before 5.5.31, 5.6.x before 5.6.17, and 7.x before 7.0.2 misinterprets the semantics of the snprintf return value, which allows attackers to obtain sensitive information from process memory or cause a denial of service (out-of-bounds read and buffer overflow) via a long string, as demonstrated by a long URI in a configuration with custom REQUEST_URI logging.
📍 영향받는 시스템
PHP 5.5.31 이전, 5.6.x (5.6.17 이전), 7.0.2 이전 버전 (FPM SAPI 모드)
⚔️ 공격 벡터
HTTP 요청의 URI, 헤더 또는 로깅 설정에서 매우 긴 문자열을 전송하여 버퍼 오버플로우 유발
🛡️ 대응 방법
PHP를 5.5.31, 5.6.17, 7.0.2 이상으로 즉시 업그레이드하거나 snprintf 관련 패치 적용
🔧 검증 코드
현재 PHP 버전이 5.5.31 미만, 5.6.17 미만, 또는 7.0.2 미만이면 취약한 상태입니다. 5.5.31, 5.6.17, 7.0.2 이상이면 안전합니다.
php -v | grep -oE '(5\.[0-9]+\.[0-9]+|7\.[0-9]+\.[0-9]+)' | head -1