🇰🇷 한글 설명
PHP의 var_unserializer.c에서 잘못된 객체 처리 취약점으로, 공격자가 조작된 직렬화 데이터를 통해 __destruct와 magic method를 의도하지 않게 호출하게 할 수 있습니다. 이를 통해 원격 코드 실행(RCE) 또는 서비스 거부(DoS) 공격이 가능합니다.
💡 쉬운 설명
PHP에서 저장된 객체 데이터를 읽을 때, 악의적으로 만들어진 데이터를 처리하면서 보안 검증이 제대로 이루어지지 않는 문제입니다. 공격자는 이를 이용해 서버에서 원하는 코드를 실행하거나 서버를 먹통으로 만들 수 있습니다.
🇺🇸 원문 (English)
ext/standard/var_unserializer.c in PHP before 5.6.25 and 7.x before 7.0.10 mishandles certain invalid objects, which allows remote attackers to cause a denial of service or possibly have unspecified other impact via crafted serialized data that leads to a (1) __destruct call or (2) magic method call.
📍 영향받는 시스템
PHP 5.6.25 이전 버전, PHP 7.0.10 이전 버전
⚔️ 공격 벡터
unserialize() 함수로 처리되는 조작된 직렬화 객체를 통한 원격 공격 (네트워크 기반)
🛡️ 대응 방법
PHP를 5.6.25 이상 또는 7.0.10 이상으로 즉시 업그레이드하거나, 신뢰할 수 없는 소스의 직렬화 데이터 처리를 피해야 합니다.
🔧 검증 코드
VULNERABLE이면 해당 PHP 버전이 취약하므로 즉시 업그레이드 필요, PATCHED이면 패치된 버전입니다.
php -v | grep -oP 'PHP \K[0-9]+\.[0-9]+\.[0-9]+' | awk -F. '{if($1==5 && $2==6 && $3<25 || $1==7 && $2==0 && $3<10) print "VULNERABLE"; else print "PATCHED"}'