🇰🇷 한글 설명
Zend Framework의 PHP-FPM 사용 시 XML 외부 엔티티(XXE) 로더 설정이 스레드 간에 제대로 공유되지 않아 XXE 공격이 가능한 취약점입니다. CVE-2012-5657의 불완전한 패치로 인해 발생했습니다.
💡 쉬운 설명
Zend Framework를 사용하는 웹사이트에서 PHP-FPM으로 실행할 때, 악의적인 XML 파일을 업로드하면 서버의 중요 파일을 읽을 수 있습니다. 이는 여러 사용자의 요청을 동시에 처리할 때 보안 설정이 제대로 적용되지 않는 문제입니다.
🇺🇸 원문 (English)
Zend Framework 1 (ZF1) before 1.12.4, Zend Framework 2 before 2.1.6 and 2.2.x before 2.2.6, ZendOpenId, ZendRest, ZendService_AudioScrobbler, ZendService_Nirvanix, ZendService_SlideShare, ZendService_Technorati, and ZendService_WindowsAzure before 2.0.2, ZendService_Amazon before 2.0.3, and ZendService_Api before 1.0.0, when PHP-FPM is used, does not properly share the libxml_disable_entity_loader setting between threads, which might allow remote attackers to conduct XML External Entity (XXE) attacks via an XML external entity declaration in conjunction with an entity reference. NOTE: this issue exists because of an incomplete fix for CVE-2012-5657.
📍 영향받는 시스템
Zend Framework 1 < 1.12.4, ZF 2 < 2.1.6/2.2.6, ZendService_* 패키지 < 2.0.2/2.0.3 (PHP-FPM 사용)
⚔️ 공격 벡터
XXE(XML External Entity) 선언을 포함한 악의적인 XML 요청을 전송하여 서버의 파일 접근 또는 내부 리소스 탐색
🛡️ 대응 방법
영향받는 패키지를 권장 버전 이상으로 업그레이드 (ZF1 ≥ 1.12.4, ZF2 ≥ 2.2.6, ZendService_Amazon ≥ 2.0.3)
🔧 검증 코드
Zend Framework의 설치된 버전을 확인하여 영향받는 버전 범위와 비교하면 됩니다. 권장 버전 이상이면 패치됨.
php -r "echo 'ZF version: ' . (class_exists('Zend_Version') ? Zend_Version::VERSION : 'Not Found');" 2>/dev/null || composer show zendframework/zendframework 2>/dev/null | grep -E 'versions'