🇰🇷 한글 설명
WordPress용 Nex Forms – Ultimate Form Builder – Lite 플러그인 9.2.3 이하 버전에서 경로 탐색(Path Traversal)을 통한 임의 파일 삭제 취약점이 발견되었습니다. 공격자는 데이터베이스에 임의의 경로를 저장한 뒤 delete_file() 핸들러를 호출하여 wp-config.php를 포함한 서버의 주요 파일을 삭제할 수 있습니다.
💡 쉬운 설명
해킹 권한을 가진 사용자가 서버에 저장된 중요한 설정 파일이나 시스템 파일을 마음대로 지울 수 있는 보안 약점이 있습니다. 이로 인해 웹사이트가 완전히 망가지거나 작동을 멈출 수 있습니다.
🇺🇸 원문 (English)
The Nex Forms – Ultimate Form Builder – Lite plugin for WordPress is vulnerable to arbitrary file deletion via path traversal in versions up to, and including, 9.2.3. This is due to the delete_file() AJAX handler retrieving a file path from the database and passing it directly to unlink() with no validation (no realpath(), basename(), or allowlist check), combined with the insert_record() AJAX handler that lets the same authenticated user store an arbitrary value in the target 'location' column (wp_kses() only strips HTML tags and does not neutralize path traversal or absolute paths). This makes it possible for authenticated attackers, with admin-level access and above, to delete arbitrary files on the affected site's server, including wp-config. When the plugin's user-level option is configured to something else, this may be exploitable with lower privileges.
📍 영향받는 시스템
Nex Forms – Ultimate Form Builder – Lite plugin for WordPress (version <= 9.2.3)
⚔️ 공격 벡터
인증된 사용자가 insert_record()를 통해 조작된 경로를 저장한 후, delete_file() AJAX 핸들러를 호출하여 파일 삭제
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하거나, 파일 경로 검증 로직(realpath, basename 등)이 포함된 패치를 적용하십시오.
🔧 검증 코드
출력된 플러그인 목록에서 nex-forms의 버전이 9.2.3 이하인지 확인하십시오.
wp plugin list --allow-root | grep -E 'nex-forms'