🇰🇷 한글 설명
PHP의 언직렬화 과정에서 __wakeup 매직 메서드가 속성 수정을 제대로 검증하지 못하여, 공격자가 조작된 직렬화 데이터를 전송해 원격 서비스 거부나 코드 실행을 유발할 수 있는 치명적인 취약점입니다.
💡 쉬운 설명
PHP 웹 서버가 저장된 객체 데이터를 복원할 때 검증 없이 받아들여서, 해커가 특수한 데이터를 보내 서버를 다운시키거나 제어할 수 있습니다. unserialize() 함수로 신뢰할 수 없는 데이터를 처리할 때 발생합니다.
🇺🇸 원문 (English)
PHP through 5.6.27 and 7.x through 7.0.12 mishandles property modification during __wakeup processing, which allows remote attackers to cause a denial of service or possibly have unspecified other impact via crafted serialized data, as demonstrated by Exception::__toString with DateInterval::__wakeup.
📍 영향받는 시스템
PHP 5.6.27 이전, PHP 7.0.12 이전 모든 버전
⚔️ 공격 벡터
원격 공격자가 HTTP POST 요청, 쿠키, 세션 데이터 등을 통해 조작된 직렬화 PHP 객체 전송
🛡️ 대응 방법
PHP를 5.6.27 이상, 7.0.12 이상, 또는 7.1.0 이상으로 즉시 업그레이드하고 unserialize() 함수 사용 최소화
🔧 검증 코드
VULNERABLE이 출력되면 패치 필요, PATCHED이면 안전
php -r "echo version_compare(phpversion(), '5.6.27', '<') || (version_compare(phpversion(), '7.0.0', '>=') && version_compare(phpversion(), '7.0.12', '<')) ? 'VULNERABLE' : 'PATCHED';" 2>/dev/null