CVE-2026-1321
Received Received - Intake
Privilege Escalation in Membership Plugin Allows Admin Role Assignment

Publication date: 2026-03-05

Last updated on: 2026-03-05

Assigner: Wordfence

Description
The Membership Plugin – Restrict Content plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 3.2.20. This is due to the `rcp_setup_registration_init()` function accepting any membership level ID via the `rcp_level` POST parameter without validating that the level is active or that payment is required. Combined with the `add_user_role()` method which assigns the WordPress role configured on the membership level without status checks, this makes it possible for unauthenticated attackers to register with any membership level, including inactive levels that grant privileged WordPress roles such as Administrator, or paid levels that charge a sign-up fee. The vulnerability was partially patched in version 3.2.18.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-03-05
Last Modified
2026-03-05
Generated
2026-05-07
AI Q&A
2026-03-05
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 3 associated CPEs
Vendor Product Version / Range
restrict_content_pro restrict_content_pro to 3.2.20 (inc)
restrict_content_pro restrict_content_pro 3.2.18
restrict_content_pro restrict_content_pro 3.2.21
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-862 The product does not perform an authorization check when an actor attempts to access a resource or perform an action.
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

The Membership Plugin – Restrict Content plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 3.2.20. The vulnerability arises because the function `rcp_setup_registration_init()` accepts any membership level ID via the `rcp_level` POST parameter without validating whether the level is active or requires payment.

This lack of validation, combined with the `add_user_role()` method assigning WordPress roles based on the membership level without status checks, allows unauthenticated attackers to register with any membership level. This includes inactive levels that grant privileged roles such as Administrator, or paid levels that normally require a sign-up fee.

The vulnerability was partially patched in version 3.2.18 by adding stricter validation on membership levels, payment gateways, and user permissions during registration.


How can this vulnerability impact me? :

This vulnerability can allow unauthenticated attackers to escalate their privileges by registering with any membership level, including those that grant high-level WordPress roles such as Administrator.

As a result, attackers could gain administrative access to your WordPress site, potentially allowing them to modify content, manage users, install malicious plugins, or take full control of the site.

Additionally, attackers could register for paid membership levels without paying the required fees, bypassing payment controls.


How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:

I don't know


How can this vulnerability be detected on my network or system? Can you suggest some commands?

[{'type': 'paragraph', 'content': 'This vulnerability involves unauthenticated attackers exploiting the `rcp_level` POST parameter to register with any membership level, including inactive or privileged ones, due to insufficient validation in the Restrict Content Pro plugin versions up to 3.2.20.'}, {'type': 'paragraph', 'content': 'Detection on your network or system would involve monitoring HTTP POST requests to the WordPress site that include the `rcp_level` parameter in registration forms or API calls. Suspicious activity would be POST requests attempting to register with membership level IDs that are inactive or unusually privileged.'}, {'type': 'paragraph', 'content': 'Since the vulnerability exploits the registration process, you can check your web server access logs for POST requests to the registration endpoint containing the `rcp_level` parameter with unexpected or high privilege membership level IDs.'}, {'type': 'paragraph', 'content': 'Example commands to detect such attempts (assuming access to server logs):'}, {'type': 'list_item', 'content': 'Use grep to find POST requests with the `rcp_level` parameter in your web server logs, e.g.:'}, {'type': 'list_item', 'content': "grep -i 'POST' /var/log/apache2/access.log | grep 'rcp_level='"}, {'type': 'list_item', 'content': 'Filter for suspicious membership level IDs (e.g., IDs corresponding to Administrator or inactive levels):'}, {'type': 'list_item', 'content': "grep 'rcp_level=1' /var/log/apache2/access.log # if 1 is admin level"}, {'type': 'paragraph', 'content': 'Additionally, monitoring for new user registrations with unexpected roles or membership levels in the WordPress admin panel or database can help detect exploitation.'}, {'type': 'paragraph', 'content': 'Because the vulnerability allows unauthenticated registration with privileged roles, reviewing recent user accounts created with elevated roles is recommended.'}] [1, 2, 3, 4]


What immediate steps should I take to mitigate this vulnerability?

The primary mitigation step is to update the Restrict Content Pro plugin to version 3.2.21 or later, as the vulnerability was partially patched in 3.2.18 and fully addressed in subsequent versions.

The updates include stricter validation of membership levels during registration, ensuring that only active and valid membership levels can be selected, and that paid levels require appropriate payment gateways.

Additional mitigations include:

  • Ensure that your WordPress installation and all plugins are kept up to date, especially Restrict Content Pro.
  • Review and restrict user registration settings to prevent unauthenticated registrations if not needed.
  • Monitor and audit new user accounts for unexpected roles or membership levels.
  • Implement Web Application Firewall (WAF) rules to block suspicious POST requests attempting to manipulate the `rcp_level` parameter.

If immediate update is not possible, consider temporarily disabling user registrations or restricting access to the registration endpoint until the patch can be applied.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart