🇰🇷 한글 설명
PHP의 date extension timelib_meridian 파싱 코드에서 경계값 검사 오류로 인해 메모리 범위를 벗어난 읽기가 발생합니다. 공격자가 특수하게 조작된 날짜 문자열을 입력하면 PHP 인터프리터의 메모리 내용을 누출할 수 있습니다.
💡 쉬운 설명
PHP의 날짜 처리에 버그가 있어서 특정 문자열을 입력하면 프로그램 메모리의 민감한 데이터가 외부로 노출됩니다. 해커가 이를 이용해 시스템 정보나 암호화된 데이터 등을 탈취할 수 있습니다.
🇺🇸 원문 (English)
In PHP before 5.6.31, 7.x before 7.0.21, and 7.1.x before 7.1.7, an error in the date extension's timelib_meridian parsing code could be used by attackers able to supply date strings to leak information from the interpreter, related to ext/date/lib/parse_date.c out-of-bounds reads affecting the php_parse_date function. NOTE: the correct fix is in the e8b7698f5ee757ce2c8bd10a192a491a498f891c commit, not the bd77ac90d3bdf31ce2a5251ad92e9e75 gist.
📍 영향받는 시스템
PHP 5.6.31 이전, 7.0.21 이전, 7.1.7 이전 모든 버전
⚔️ 공격 벡터
공격자가 strtotime() 등 날짜 파싱 함수에 특수 조작된 문자열을 전달하여 메모리 누출 유발
🛡️ 대응 방법
PHP를 5.6.31, 7.0.21, 7.1.7 이상 버전으로 즉시 업그레이드
🔧 검증 코드
출력된 PHP 버전이 5.6.31 미만, 7.0.21 미만, 7.1.7 미만이면 취약
php -v 2>/dev/null | head -1 | grep -oE 'PHP [0-9]+\.[0-9]+\.[0-9]+'