🇰🇷 한글 설명
aBlocks 워드프레스 플러그인 2.17.0 이하 버전에는 /ablocks/v1/form-builder/registration REST 엔드포인트의 권한 검증 누락으로 인한 권한 상승 취약점이 있습니다. 기여자(Contributor) 이상의 권한을 가진 인증된 공격자가 조작된 블록 속성을 통해 역할을 에디터 등 관리자 미만의 역할로 상승시킬 수 있습니다.
💡 쉬운 설명
워드프레스에서 글을 작성할 수 있는 낮은 권한의 사용자가 특정 기능을 악용해 더 높은 권한의 계정으로 올라갈 수 있는 문제입니다. 관리자 권한까지는 도달하지 못하지만 에디터 수준의 권한을 얻을 수 있습니다.
🇺🇸 원문 (English)
The aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 2.17.0 via the `/ablocks/v1/form-builder/registration` REST endpoint. The vulnerability exists because the endpoint is registered with `permission_callback => __return_true` and the `register()` handler reads `roleSlug` directly from attacker-controlled block attributes in `post_content` without ever verifying that the block's `formType` is `registration` — a condition that `RegistrationFormSanitizer::verify()` imposes only at save-time, meaning a Contributor can preserve an arbitrary `roleSlug` by saving a block with `formType='login'` and then triggering the endpoint via a valid `wp_rest` nonce and post-ownership check. This makes it possible for authenticated attackers, with Contributor-level access and above, to escalate their WordPress role to Editor or any other non-administrator role and receive a fully authenticated session at the elevated privilege level via `WP_User::set_role()` and `wp_set_auth_cookie()`. Escalation is bounded below administrator-tier roles because `is_safe_registration_role()` rejects any role holding `manage_options`, `edit_users`, `delete_users`, `create_users`, `promote_users`, or `edit_theme_options`, meaning the highest practically reachable role on a standard WordPress installation is Editor.
📍 영향받는 시스템
aBlocks 플러그인 2.17.0 이하 모든 버전이 설치된 WordPress 사이트
⚔️ 공격 벡터
기여자 이상 계정으로 formType='login'인 블록을 저장해 roleSlug를 보존한 뒤 registration 엔드포인트를 호출하여 역할을 상승시킴
🛡️ 대응 방법
aBlocks 플러그인을 2.17.0 초과 최신 버전으로 업데이트하고, 업데이트 전까지 사용하지 않는 기여자 계정을 점검하거나 플러그인을 비활성화
🔧 검증 코드
출력된 버전이 2.17.0 이하이면 취약하며, 2.17.0 초과이면 해당 CVE의 패치가 적용된 것입니다.
wp plugin get ablocks --field=version 2>/dev/null || grep -m1 "Version:" wp-content/plugins/ablocks/*.php 2>/dev/null
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
💻 영향받는 소프트웨어
IBM Security Verify Access