🇰🇷 한글 설명
Everest Forms 플러그인의 html-admin-page-entries.php에서 allowed_classes 매개변수 없이 unserialize()을 사용하여 신뢰하지 않은 입력을 역직렬화하는 PHP Object Injection 취약점입니다. 공격자는 공개 폼 필드를 통해 직렬화된 PHP 객체를 주입할 수 있으며, 이 데이터는 sanitize_text_field()를 우회하여 wp_evf_entrymeta 테이블에 저장되고, 관리자가 항목을 볼 때 클래스 제한 없이 처리되어 코드 실행이 가능합니다.
💡 쉬운 설명
WordPress Everest Forms 플러그인이 누구나 입력할 수 있는 폼에서 데이터를 안전하게 처리하지 않습니다. 악의적인 코드를 숨겨진 형태로 폼에 넣으면, 관리자가 제출된 폼을 확인할 때 그 코드가 자동으로 실행됩니다.
🇺🇸 원문 (English)
The Everest Forms plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 3.4.3 via deserialization of untrusted input from form entry metadata. This is due to the html-admin-page-entries-view.php file calling PHP's native unserialize() on stored entry meta values without passing the allowed_classes parameter. This makes it possible for unauthenticated attackers to inject a serialized PHP object payload through any public Everest Forms form field. The payload survives sanitize_text_field() sanitization (serialization control characters are not stripped) and is stored in the wp_evf_entrymeta database table. When an administrator views entries or views an individual entry, the unsafe unserialize() call processes the stored data without class restrictions.
📍 영향받는 시스템
Everest Forms plugin for WordPress versions up to and including 3.4.3
⚔️ 공격 벡터
Unauthenticated attackers inject malicious serialized PHP objects through public form fields; payload bypasses sanitization, persists in database, executes when admin views entries
🛡️ 대응 방법
Update Everest Forms to version 3.4.4 or later; implement strict input validation and use unserialize() with allowed_classes parameter restricting to safe classes only
🔧 검증 코드
플러그인 버전이 3.4.3 이하면 취약함; 3.4.4 이상이면 안전함
grep -m1 'Version:' /var/www/html/wp-content/plugins/everest-forms/everest-forms.php 2>/dev/null | awk '{print $NF}'