🇰🇷 한글 설명
WordPress용 Propovoice 플러그인 1.7.8 이하 버전에서 권한 상승 취약점이 발견되었습니다. REST API의 create() 함수가 사용자가 입력한 역할을 검증하지 않고 WP_User::set_role()에 직접 전달하여, 특정 권한을 가진 사용자가 관리자 계정을 생성할 수 있습니다.
💡 쉬운 설명
플러그인을 사용하는 일반 관리자급 사용자가 시스템의 최고 권한인 '관리자' 계정을 마음대로 만들 수 있는 보안 결함입니다. 이를 통해 공격자는 웹사이트의 모든 제어권을 탈취할 수 있습니다.
🇺🇸 원문 (English)
The Propovoice: All-in-One Client Management System plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 1.7.8. This is due to the `create()` function's REST endpoint failing to validate the user-supplied `role` parameter against an allowlist of permitted WordPress roles and omitting any `promote_users` capability check before passing the sanitized value directly to `WP_User::set_role()`. This makes it possible for authenticated attackers with `ndpv_manager`-level access and above to create a new WordPress user account with the `administrator` role assigned, achieving full vertical privilege escalation. The `ndpv_manager` capability is a sub-administrator CRM team role granted by Propovoice itself, meaning the attack surface extends beyond site administrators to any user the plugin has elevated to a manager position.
📍 영향받는 시스템
Propovoice: All-in-One Client Management System plugin for WordPress (v1.7.8 및 그 이하 모든 버전)
⚔️ 공격 벡터
인증된 ndpv_manager 권한 이상의 사용자가 REST API를 통해 role 파라미터를 administrator로 조작하여 호출
🛡️ 대응 방법
플러ги를 최신 버전으로 업데이트하거나, REST API 호출 시 role 파라미터에 대한 허용 목록 검증 및 권한 체크 로직을 적용해야 합니다.
🔧 검증 코드
출력 결과에 propovoice 플러그인이 포함되어 있다면, 설치된 버전을 확인하여 1.7.8 이하인지 점검하십시오.
wp plugin list --status=active | grep -i 'propovoice'