🇰🇷 한글 설명
PHP 7.0.12 이전 버전의 SplObjectStorage 언직렬화 구현에서 키 타입을 검증하지 않아, 악의적 직렬화 데이터를 통해 원격 코드 실행이나 메모리 접근 오류로 인한 서비스 거부가 가능합니다. ext/spl/spl_observer.c의 구현 결함으로 발생합니다.
💡 쉬운 설명
PHP의 데이터 복원 기능이 신뢰하지 않은 데이터를 안전하게 검증하지 않아, 해커가 특수한 데이터를 보내 컴퓨터를 제어하거나 멈출 수 있습니다. PHP 7.0.12 이전 버전 사용자가 위험합니다.
🇺🇸 원문 (English)
The SplObjectStorage unserialize implementation in ext/spl/spl_observer.c in PHP before 7.0.12 does not verify that a key is an object, which allows remote attackers to execute arbitrary code or cause a denial of service (uninitialized memory access) via crafted serialized data.
📍 영향받는 시스템
PHP 5.1.0 ~ 7.0.11 (7.0.12 미만의 모든 버전)
⚔️ 공격 벡터
악의적으로 구성된 SplObjectStorage 직렬화 데이터를 unserialize() 함수로 처리
🛡️ 대응 방법
PHP를 7.0.12 이상으로 즉시 업그레이드 또는 untrusted 데이터에 대해 unserialize() 사용 금지
🔧 검증 코드
출력된 PHP 버전이 7.0.12 이상이면 패치됨, 그 이하면 즉시 업그레이드 필요
php -v | grep -oE 'PHP [0-9]+\.[0-9]+\.[0-9]+'