Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
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
exploit-CVE-2023-3460 — Exploit and analysis of CVE-2023-3460, a critical privilege escalation in the Ultimate Member WordPress plugin, with reproduction environment and mitigation guidance. | Kitploit
Tools/GitHubGitHub/julienbrs/exploit-cve-2023-3460
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationLearning & EducationLabs & Practice
GitHubjulienbrs/exploit-cve-2023-3460

exploit-CVE-2023-3460

Exploit and analysis of CVE-2023-3460, a critical privilege escalation in the Ultimate Member WordPress plugin, with reproduction environment and mitigation guidance.

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
2 years agoNot yet reviewed

title: "IT Security - CVE 2023-38408"

Analysis and exploitation of CVE-2023-3460

CVE IDCVSS ScoreDiscoveredAffected PluginVulnerability Type
CVE-2023-3460Critical07/04/2023Ultimate MemberUnauthorized Admin Access

Table of Contents

  • Introduction
  • General vulnerability mechanism
    • Role management mechanism in WordPress
    • Ultimate Member's poor implementation
  • Security target for CVE-2023-3460
    • Assumptions
    • Typical users
    • Assets to protect
    • Threats
    • Security functions
  • Typical Architecture
  • Vulnerability mitigation
  • Vulnerability experimentation
    • Reproduction
    • Details on exploit.py
  • Appendix
    • Glossary
    • Sources

Introduction

This study focuses on CVE¹-2023-3460, a critical vulnerability affecting the "Ultimate Member" WordPress plugin, allowing unauthorized privilege escalation. This plugin is widely deployed and used for profile management on WordPress sites. This vulnerability poses a major risk because it allows an attacker to obtain administrator rights and therefore full control of the site. This is why this flaw was classified as critical and rated 9.1 on the CVSS scale by NIST².

General vulnerability mechanism

CVE-2023-3460 exploits a flaw in the plugin's role and permission management. In WordPress, the WP_Capabilities³ function is used to manage user roles and permissions. This function allows administrators to define specific capabilities for each user role. However, improper use of this function can lead to privilege escalation vulnerabilities.

In the case of Ultimate Member, the vulnerability allows an attacker to bypass WP capability checks and gain administrator-level access to the site. The plugin operates by using a predefined list of user metadata keys that should not be manipulated by users. However, this security approach, based on blocklists, is often insufficient because it leaves room for bypasses.

Role management mechanism in WordPress

WordPress manages user roles and permissions through a structure called wp_capabilities. This structure is a serialized representation of the different roles and permissions granted to users. For example, an administrator will have a different set of capabilities than an editor or a contributor. These capabilities are stored in the WordPress database as serialized arrays in the wp_usermeta table.

Ultimate Member's poor implementation

The CVE-2023-3460 flaw originates from Ultimate Member's implementation of role and permission management. The plugin operates by using a predefined list of user metadata keys that users should not manipulate. This list is used to check whether users attempt to save these keys when creating an account. This approach is a common security anti-pattern, where blocking known harmful inputs (blocklists) may seem intuitive, but proves more complex than expected and often leaves room for security bypasses.

Here, Ultimate Member uses insufficient verification of metadata submitted during user registration. The plugin uses a function called is_metakey_banned to check whether the metadata submitted by the user is allowed. This function checks whether the submitted metadata appears in the list of banned metadata. If so, the function returns true and user registration is blocked. Otherwise, the function returns false and user registration is allowed.

However, WordPress accepts certain accented characters as default characters. If a user submits metadata with accented characters, the is_metakey_banned function will not detect them and user registration will be allowed.

Security target for CVE-2023-3460

Assumptions

Organizational security

The Ultimate Member plugin is widely used in various environments, ranging from small personal blogs to large e-commerce sites. No specific assumption can be made about the IT security skills of end users or site administrators.

Physical security

Servers hosting WordPress sites are generally located in secure data centers. For personal sites, physical security depends on the individual user's environment.

Logical security

It is assumed that the Ultimate Member plugin is installed and configured correctly according to the official instructions. The WordPress site is assumed to be kept up to date, with basic security measures in place.

Typical users

  • Site administrators: Manage the plugin configuration and overall site security.
  • Site users: Register and interact with the site via the Ultimate Member plugin.
  • Developers: Customize and extend the plugin's features for specific needs.

Assets to protect

  • A1 User data confidentiality: Personal information and login credentials.
  • A2 Website integrity: Protection against unauthorized modifications to the site's content or structure.
  • A3 Ultimate Member plugin integrity: Plugin source code and features.

Threats

  • T1 Unauthorized access: An attacker gains administrator privileges through the vulnerability.
  • T2 Malicious code injection: Modification of site behavior through code injection.
  • T3 Data leakage: Unauthorized access to confidential user data.
  • T4 Reputation damage: Negative consequences on reputation due to site compromise.

Threat coverage of assets

7.5 Security functions

  • F1 Secure role management: Robust mechanisms for managing roles and permissions.
  • F2 Input validation: Strict checks on submitted data to prevent malicious data injection.
  • F3 Security updates and patches: Regular plugin updates to fix known vulnerabilities.
  • F4 Training and awareness: Informing administrators and users about security best practices.

Typical Architecture

Web Server:

  • Hosts the WordPress site.
  • Typically an Apache or Nginx server on a Linux machine (may vary depending on the hosting provider or administrator preferences).
  • Connected to the Internet to allow access to the website.

Database Management System (DBMS):

  • Usually MySQL or MariaDB.
  • Stores WordPress site data, including user data managed by Ultimate Member.

WordPress with Ultimate Member Plugin:

  • WordPress installed with the Ultimate Member plugin for user profile management, registration, and role management.
  • May include other plugins and themes that can interact with Ultimate Member.

Network and Security:

  • Firewall and other network security measures to protect the server.
  • SSL/TLS to secure communications between the client and the server.

Users/Administrators:

  • Site administrators who manage and maintain the WordPress site and the Ultimate Member plugin.
  • End users who register and interact with the site.

External Services (optional):

  • Email services for notifications and account management.
  • Integrations with social networks or other platforms for connectivity and extended features.

Vulnerability mitigation

As an administrator, here are concrete measures that can be taken to mitigate the risks associated with this vulnerability.

1. Restricting Editable Metadata

User Input Validation: Implement server-side validations to check all user inputs, especially those that modify metadata such as wp_capabilities. Use regular expressions or validation lists (whitelists) rather than blocklists to control inputs.

2. Securing Registration Forms

CAPTCHA and Rate Limits: Integrate CAPTCHAs and rate limits on registration forms to prevent automated attacks. Client-Side Checks: Although client-side validations are not sufficient on their own, they can help prevent automated attacks and improve the user experience.

3. Log Monitoring and Analysis

Log Monitoring: Set up a log monitoring system to detect any suspicious changes to user roles or metadata injection attempts. This can be done using log analysis tools.

4. Using Advanced Web Security Solutions

Web Application Firewall (WAF): Configure a WAF⁴ to block known and unknown attacks, including malicious code injection attacks. Intrusion Detection/Prevention Systems (IDS/IPS)⁵: Implement an IDS/IPS to detect attempts to exploit the vulnerability.

5. Permission and Role Management

User Role Review: Regularly review the roles assigned to users to detect any abnormal privilege escalation. Permission Restriction: Limit the permissions granted by default to new users and require administrative validation for assigning elevated roles, following the principle of least privilege. See details on this principle here.

6. Security Updates and Patches

Rapid Application of Updates: Perform regular security updates for plugins and WordPress itself.

7. Developer Awareness and Training

Train developers on the security best practices mentioned above, and raise awareness of the risks/impacts of poor implementation.

Vulnerability experimentation

Reproduction

A Makefile is available to help you launch the exploitation of the flaw. You can use it as follows:

  • make up to launch WordPress with all necessary installations. After a waiting period, it will start a WordPress server, configure it, and install version 2.6.5 of the Ultimate Member plugin. You will then be able to log into WordPress on the Login page with the credentials admin:password. By going to the Users tab, you will see that only the admin user is present. one_admin

    Note: if you have docker-compose and not docker compose, you can modify the Makefile accordingly (variable DOCKER_COMPOSE= docker-compose).

Then, you can launch the exploitation of the flaw:

  • make exploit You will then be able to log into WordPress on Login with the credentials provided by the exploit and observe in the Users tab that a new user has been created with the Administrator role.

    two_admin

  • make down to stop the WordPress server and delete the data.

Details on exploit.py

  • make exploit runs the exploit.py script. This script acts in several steps: Technical Details of the Exploit

1. Vulnerability Check: Before proceeding with the exploitation, the script checks whether the version of the Ultimate Member plugin installed on the target site is vulnerable, i.e., lower than version 2.6.7.

2. Retrieving the Security Nonce: The script retrieves a security nonce³ from the target site's registration page. This nonce is required for the registration request to be accepted by WordPress. The nonce is retrieved by parsing the HTML code of the registration page.

3. Exploiting the Vulnerability: The script then submits a POST request to the registration page, including a manipulated parameter (wp_càpabilities[administrator]=1). This parameter uses an accented character (à) to bypass the plugin's security controls and incorrectly serialize the data, thereby assigning the administrator role to the newly created user.

4. Exploit Confirmation: After sending the request, the script checks whether the operation succeeded by parsing the server's response.

Appendix

Glossary

  1. CVE (Common Vulnerabilities and Exposures): International referencing system for IT security vulnerabilities. More information.
  2. nvd.nist.gov: Reference database for IT security vulnerabilities. Official site.
  3. WP_Capabilities: Serialized WordPress attribute used to manage user roles and permissions. Learn more about WordPress roles and capabilities, and how to use them
  4. Security Nonce: Token used in computer communications to prevent certain forms of attacks, such as CSRF attacks. Details here.
  5. WAF (Web Application Firewall): Security tool for monitoring and filtering HTTP traffic between a web server and the Internet. Further reading.
  6. IDS/IPS (Intrusion Detection and Prevention Systems): Devices or applications that monitor a network or systems to detect malicious activity. Additional explanations.
  7. Cross-Site Request Forgery (CSRF): Attack that forces a logged-in user to execute unwanted actions on a web application. Learn more.

Sources

Download Tool
ThreatsA1 (User data confidentiality)A2 (Website integrity)A3 (Ultimate Member plugin integrity)
T1 Unauthorized accessXXX
T2 Malicious code injectionXX
T3 Data leakageX
T4 Reputation damageX
NameLink
NIST CVE-2023-3460https://nvd.nist.gov/vuln/detail/CVE-2023-3460
Ultimate Member Githubhttps://github.com/ultimatemember/ultimatemember
Package version used for exploitation 2.6.5https://wordpress.org/plugins/ultimate-member/advanced/
Patch of the exploithttps://github.com/ultimatemember/ultimatemember/commit/fae47c6065ce07e9a8b44501002fa5b4f16d2456
Review of the exploithttps://thesecmaster.com/how-to-fix-cve-2023-3460-a-privilege-escalation-vulnerability-in-ultimate-member-wordpress-plugin/
OWASP Top 10 Application Security Riskshttps://owasp.org/www-project-top-ten/