Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister subscriber or free-membership account
-
DeliverySubmit profile with script in 'country' field
-
ExploitPayload stored unsanitized
-
ExecutionAdmin/user views injected page
-
ImpactScript executes in victim browser context
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | By default, exploitation requires an authenticated account with subscriber-level access or above (PR:L) and the ability to submit the member profile form containing the 'country' field. The vulnerability becomes exploitable by fully unauthenticated attackers ONLY when the plugin's 'Enable Free Membership' feature is enabled, since that permits anonymous front-end registration and profile submission. Payload execution additionally requires that another user subsequently load the page rendering the stored 'country' value (e.g., an admin reviewing members), making victim page-view a practical limiting factor. Affected deployments are limited to WordPress sites running Simple Membership version 4.8.4 or earlier; upgrading to 4.8.5 removes the condition. |
| Impact | This is a stored XSS (CWE-79) in the Simple Membership WordPress plugin rated CVSS 6.4 (Medium) with vector AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N. The network vector, low complexity, and scope change (S:C) reflect a typical persistent XSS where injected script executes in other users'/admins' browser contexts. No EPSS score, KEV listing, or public POC was provided, so exploitation status is 'no public exploit identified at time of analysis' - this is a credible but not confirmed-exploited issue. The most important risk nuance is the PR qualifier: by default exploitation requires at least subscriber-level authentication (PR:L), which limits mass exploitation; however, the description explicitly states that if the 'Enable Free Membership' feature is enabled, unauthenticated attackers can register and submit a profile anonymously, effectively lowering the barrier to PR:N in that configuration - the published CVSS vector does NOT reflect this worse-case path, so defenders running free membership should treat it as more severe than 6.4 suggests. Overall this is a real but moderate-priority issue: patch promptly, prioritize sites with open/free registration, but it is not a drop-everything critical given Low confidentiality/integrity impact, no availability impact, and no evidence of active exploitation. |
| Exploit ScenarioDerived | An attacker registers a subscriber account (or, if 'Enable Free Membership' is on, registers anonymously from the front end) and submits a membership profile with a malicious script payload in the 'country' field. Because input is neither sanitized on entry nor escaped on output, the stored script executes whenever another user - including an administrator reviewing members - views the injected page, enabling session/credential theft or admin-context actions. No public exploit code was identified, and successful execution depends on a victim rendering the affected page. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 10, 2026
Stored cross-site scripting in the Simple Membership WordPress plugin (versions up to and including 4.8.4) lets an attacker persist arbitrary JavaScript through the member profile 'country' field, which then executes in the browser of any user - typically an administrator - who views the affected member listing or profile page. By default the attacker must hold an authenticated account at subscriber level or above, but the vector widens to fully unauthenticated attackers whenever the plugin's 'Enable Free Membership' option is on, because that setting permits anonymous front-end registration and profile submission. Rated CVSS 6.4 (Medium) and reported by Wordfence, there is no public exploit identified at time of analysis and no confirmed active exploitation (not in CISA KEV); the fix is the vendor-released version 4.8.5.
RemediationAI
Upgrade the plugin to the vendor-released fixed version 4.8.5, available from the WordPress.org plugin repository at https://downloads.wordpress.org/plugin/simple-membership.4.8.5.zip, or via the standard WordPress plugin update mechanism; this removes the insufficient sanitization/escaping condition and is the only complete fix. If immediate patching is not possible, the highest-value compensating control is to disable the plugin's 'Enable Free Membership' setting, which closes the unauthenticated registration vector and reduces exploitation to authenticated subscriber-level users - the trade-off being that anonymous/free signups stop working. Administrators can further reduce exposure by temporarily restricting who may create accounts or submit profile data (for example tightening registration approvals), and by reviewing existing member records for injected markup in the 'country' field. Note that the reference links in this advisory are code and advisory pointers, not standalone patches; the WordPress plugin package version 4.8.5 itself is the authoritative fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The issue is a classic CWE-79 stored cross-site scripting flaw rooted in insufficient input sanitization on ingest and missing output escaping on render. The 'country' parameter of the Simple Membership member form is accepted and persisted without adequate sanitization (see class.swpm-utils-misc.php around line 1060 and class.swpm-form.php around line 158 in the 4.8.4 tag), and the stored value is later emitted into admin/member-facing markup without escaping (views/admin_member_form_common_part.php line 42). Because the tainted value is rendered as part of a page served to other users, the injected script executes in their session context, which is why the CVSS scope is marked Changed (S:C) even though confidentiality and integrity impacts are limited. CPE data (cpe:2.3:a:wpinsider-1:simple_membership) confirms the affected package is the upstream Simple Membership plugin distributed through the WordPress.org plugin repository; the code is a PHP plugin using WordPress form handling, and the underlying failure class is the same sanitize-on-input/escape-on-output discipline that WordPress's security model requires.
Know when Simple Membership gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Default path needs subscriber auth (PR:L); stored payload fires only when a victim views the page (UI:R), executing cross-context (S:C) with low C/I and no availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Simple Membership plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'country' parameter in all versions up to, and including, 4.8.4 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. Unauthenticated attackers may also exploit this vulnerability when the plugin's Enable Free Membership feature is turned on, as it permits anonymous front-end registration and profile submission.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
More in Simple Membership
View allThe Simple Membership WordPress plugin before 4.1.3 allows user to change their membership at the registration stage due
Account takeover of the primary WordPress administrator affects the Simple Membership plugin in all versions before 4.7.
Stored/reflected cross-site scripting in the Simple Membership WordPress plugin before 4.7.5 lets unauthenticated attack
The Simple Membership WordPress plugin before 4.1.3 does not properly validate the membership_level parameter when editi
The Simple Membership plugin before 3.8.5 for WordPress has CSRF affecting the Bulk Operation section. Rated high severi
The Simple Membership WordPress plugin before 4.1.0 does not have CSRF check in place when deleting Transactions, which
Stored cross-site scripting in the Simple Membership WordPress plugin before 4.7.8 allows unauthenticated attackers to i
The Simple Membership WordPress plugin before 4.1.1 does not properly sanitise and escape parameters before outputting t
Privilege escalation in the Simple Membership WordPress plugin before 4.7.8 allows authenticated members to obtain highe
Simple Membership, a WordPress membership plugin, transmits a newly registered member's plaintext password in a URL quer
The Simple Membership WordPress plugin before 4.0.9 does not have CSRF check when deleting members in bulk, which could
Unauthenticated attackers can redirect activation and registration-complete emails to an arbitrary address in Simple Mem
EUVD-2026-96206
GHSA-39ch-8xp7-gcgh
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB