🇰🇷 한글 설명
WordPress의 PublishPress Capabilities 플러그인 2.50.0 이하 버전에서 권한 상승 취약점이 발견되었습니다. `addPluginCapabilities()` 함수가 관리자 승인 없이 에디터(Editor) 역할에 모든 관리 권한을 자동으로 부여하여, 에디터 권한을 가진 공격자가 사이트 전체의 역할 및 권한을 제어할 수 있습니다.
💡 쉬운 설명
일반 글쓰기 권한만 있는 사용자가 플러그인의 설정 오류를 이용해 사이트의 권한 관리자 권한을 탈취할 수 있는 문제입니다. 이를 통해 공격자는 다른 사용자의 권한을 마음대로 바꾸거나 설정을 조작할 수 있습니다.
🇺🇸 원문 (English)
The PublishPress Capabilities – User Role Editor, Access Permissions, User Capabilities, Admin Menus plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 2.50.0. This is due to the `addPluginCapabilities()` function unconditionally granting the Editor role all 15 `manage_capabilities_*` capabilities — including `manage_capabilities`, `manage_capabilities_roles`, `manage_capabilities_settings`, and `manage_capabilities_backup` — via a hard-coded `$eligible_roles = ['administrator', 'editor']` assignment that runs automatically on the first `admin_init` after plugin activation with no administrator opt-in, persisting the grants directly to the database. This makes it possible for authenticated attackers with Editor-level access to elevate their privileges to a site-wide capability manager, enabling them to create, rename, and delete non-system roles, modify capabilities of non-administrator roles, restore role backups, and write arbitrary plugin options whose names begin with `cme_`, `capsman`, `pp_capabilities`, or `presspermit` via `update_option()`. The escalation stops short of full Administrator access, as WordPress's `map_meta_cap` layer still prevents the escalated Editor from granting administrator-only capabilities to other roles; however, all role-management and plugin-settings functionality gated solely on `manage_capabilities_*` capabilities remains fully accessible.
📍 영향받는 시스템
WordPress PublishPress Capabilities plugin (version <= 2.50.0)
⚔️ 공격 벡터
인증된 에디터(Editor) 권한을 가진 공격자가 플러그인의 자동 권한 부여 로직을 악용하여 권한 상승
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하거나, 에디터 권한에 과도한 관리 권한이 부여되지 않도록 설정을 점검하십시오.
🔧 검증 코드
출력된 결과의 버전이 2.50.0 이하인지 확인하여 취약 여부를 판단합니다.
wp plugin list --name publishpress-capabilities --format=csv | grep -E 'publishpress-capabilities'