🇰🇷 한글 설명
WordPress의 Dealia – Request a quote 플러그인 1.0.7 이하 버전에서 권한 확인 미흡으로 인한 데이터 무단 수정 취약점이 발견되었습니다. 관리자용 논스(nonce)가 기여자(Contributor) 이상의 권한을 가진 사용자에게 노출되며, AJAX 핸들러가 관리자 권한을 검증하지 않아 인증된 공격자가 플러그인 설정을 초기화할 수 있습니다.
💡 쉬운 설명
낮은 권한을 가진 사용자도 관리자 전용 암호를 알아내어 플러그인 설정을 마음대로 바꿀 수 있는 보안 결함입니다. 이로 인해 사이트의 견적 요청 설정이 초기화될 위험이 있습니다.
🇺🇸 원문 (English)
The Dealia – Request a quote plugin for WordPress is vulnerable to unauthorized modification of data due to missing capability checks on multiple AJAX handlers in all versions up to, and including, 1.0.7. The admin nonce (DEALIA_ADMIN_NONCE) is exposed to all users with edit_posts capability (Contributor+) via wp_localize_script() in PostsController.php, while the AJAX handlers in AdminSettingsController.php only verify the nonce without checking current_user_can('manage_options'). This makes it possible for authenticated attackers, with Contributor-level access and above, to reset the plugin configuration.
📍 영향받는 시스템
Dealia – Request a quote plugin for WordPress (버전 1.0.7 및 그 이하 모든 버전)
⚔️ 공격 벡터
기여자(Contributor) 이상의 권한을 가진 인증된 사용자가 노출된 논스를 이용해 AJAX 요청을 보내 플러그인 설정 변경
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하거나, AdminSettingsController.php의 AJAX 핸들러에 current_user_can('manage_options') 권한 검증 로직을 추가해야 합니다.
🔧 검증 코드
플러그인이 설치되어 있는지 확인하고, 소스 코드 내에 보안 취약점이 있는 nonce 노출 코드가 존재하는지 확인합니다.
wp plugin list --status=active | grep -i 'dealia' && grep -r 'DEALIA_ADMIN_NONCE' wp-content/plugins/dealia-request-a-quote/
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
💻 영향받는 소프트웨어
IBM Security Verify Access