🇰🇷 한글 설명
PHP 4.3.10 이전 및 5.0.2 이하 5.x 버전의 unserialize() 함수가 신뢰할 수 없는 데이터를 처리할 때 메모리 손상, 이중 해제, 음수 배열 인덱스 언더플로우를 유발하여 정보 유출, 서비스 거부 및 임의 코드 실행을 허용한다.
💡 쉬운 설명
PHP의 unserialize() 함수가 악의적인 데이터를 받으면 프로그램이 충돌하거나 해킹당할 수 있다. 신뢰할 수 없는 출처의 데이터를 역직렬화할 때 특히 위험하다.
🇺🇸 원문 (English)
The deserialization code in PHP before 4.3.10 and PHP 5.x up to 5.0.2 allows remote attackers to cause a denial of service and execute arbitrary code via untrusted data to the unserialize function that may trigger "information disclosure, double-free and negative reference index array underflow" results.
📍 영향받는 시스템
PHP 4.3.10 미만, PHP 5.x up to 5.0.2
⚔️ 공격 벡터
원격 공격자가 악의적인 직렬화 데이터를 unserialize() 함수에 입력하여 임의 코드 실행 또는 서비스 거부 유발
🛡️ 대응 방법
PHP를 4.3.10 이상 또는 5.0.3 이상으로 긴급 업그레이드하거나 신뢰할 수 없는 데이터에 unserialize() 사용 제거
🔧 검증 코드
명령어 실행 후 'Vulnerable'이 출력되면 해당 PHP 버전이 CVE-2004-1019에 취약하며, 아무것도 출력되지 않으면 패치된 버전이다.
php -v | grep -oP 'PHP \K[0-9]+\.[0-9]+\.[0-9]+' | awk -F. '{if(($1==4 && $2==3 && $3<10) || ($1==5 && $2==0 && $3<=2)) print "Vulnerable"}'