Skip to main content

UsersWP Plugin CVE-2026-18501

| EUVDEUVD-2026-53926 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-08-06 Wordfence GHSA-36vj-955x-m2pp
6.4
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Register subscriber account
  2. Delivery
    Inject XSS payload into badge/profile field
  3. Exploit
    Payload stored in WordPress database
  4. Execution
    Victim administrator visits member profile page
  5. Persist
    Malicious script executes in admin browser
  6. Impact
    Exfiltrate session cookie or perform admin action

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

Exploitation requires an authenticated WordPress account with at minimum subscriber-level role on the target site - unauthenticated exploitation is not possible per the CVSS PR:L vector. The site must have the UsersWP plugin installed and active in version 1.2.69 or earlier, and the Badge Widget feature must be in use on pages accessible to other users. The XSS payload executes when any user (including administrators) accesses a page rendering the injected badge or variable output. Factors limiting exploitation: open subscriber registration must be enabled (or the attacker must already possess valid credentials), the Badge Widget or variable substitution feature must be deployed on the site, and the attack is stored-and-triggered rather than reflected, requiring victim navigation to the affected page.

Impact

The CVSS 3.1 base score of 6.4 (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) reflects a network-reachable, low-complexity attack requiring only subscriber-level authentication with a scope change (S:C), indicating payload execution in a victim's browser context rather than the server. The PR:L metric confirms authentication is required - this is not an unauthenticated attack surface. The UI:N designation in the NVD/Wordfence vector warrants scrutiny: stored XSS inherently requires a victim to visit the injected page, which most CVSS practitioners would score as UI:R; this discrepancy should be noted when prioritizing against other UI:N findings. No EPSS data was provided, and the CVE is not in the CISA KEV catalog, indicating no confirmed mass or targeted exploitation at time of analysis. The S:C flag does elevate real-world impact - a subscriber-level attacker can target administrators who visit member profile or badge-display pages, potentially enabling privilege escalation via session hijacking or admin credential theft. This is a realistic intra-site privilege escalation scenario for multi-tenant WordPress deployments with open subscriber registration.

Exploit ScenarioDerived

An attacker registers a subscriber-level account on a WordPress site running UsersWP 1.2.69 or earlier and crafts a malicious profile value (e.g., display name or a badge-linked custom field) containing a JavaScript payload such as a cookie-stealing script. When an administrator or other authenticated user browses to a member directory page or individual profile page that renders the badge widget, the stored payload executes in the victim's browser, potentially exfiltrating session cookies or triggering unauthorized admin actions. No public proof-of-concept exploit code has been identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 06, 2026

Stored Cross-Site Scripting in the UsersWP WordPress plugin (all versions through 1.2.69) allows authenticated attackers with subscriber-level access to inject persistent JavaScript payloads via unsanitized variable substitution in the Badge Widget. The vulnerability stems from two distinct unsanitized code paths - the uwp_get_user_badge() function's %%input%% and %%profile_url%% template substitutions, and the uwp_replace_variables() function - both of which fail to apply esc_html() or esc_url() before rendering user-controlled values into page output. No public exploit has been identified at time of analysis and this CVE is not listed in the CISA KEV catalog.

RemediationAI

The upstream fix is available in GitHub PR #919 (https://github.com/AyeCode/userswp/pull/919/changes), which applies esc_html() to the %%input%% substitution and esc_url() to the %%profile_url%% substitution in uwp_get_user_badge(), adds esc_html() to scalar values in uwp_replace_variables(), and applies sanitize_text_field(), sanitize_user(), sanitize_email(), and sanitize_textarea_field() to CSV import fields. The plugin's .po language file in the same PR is stamped as version 1.2.70, strongly indicating 1.2.70 is the patched release; however, a released tagged version on WordPress.org has not been independently confirmed from the available references - site operators should verify plugin version 1.2.70 or later is available in the WordPress plugin repository and update immediately. As a compensating control while awaiting the update, administrators should restrict subscriber-level registration or disable the Badge Widget feature if it is not operationally required; disabling open registration reduces the attacker pool to already-credentialed internal users. Restricting which user roles can edit badge-related profile fields further limits the injection surface.

Affected VersionsENISA

UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP 0 ≤1.2.69

Affected Packages

euvd userswp_front_end_login_form_user_registration_user_profile_members_directory_plugin_for_wp no fix

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 affected product is the UsersWP plugin for WordPress, identified by CPE cpe:2.3:a:stiofansisland:userswp_-_front-end_login_form,_user_registration,_user_profile_&_members_directory_plugin_for_wp:*:*:*:*:*:*:*:* across all versions up to and including 1.2.69. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically a failure to escape output before HTML rendering. The PR diff shows that in includes/helpers/pages.php, the uwp_get_user_badge() function substituted the %%input%% placeholder directly with $match_value and %%profile_url%% with an unescaped URL, and uwp_replace_variables() passed scalar user profile values into page output without esc_html(). A secondary issue in includes/class-import-export.php also skipped sanitize_* functions on CSV import fields. The badge widget feature acts as the injection vector because it performs template variable substitution using subscriber-editable profile data that is then stored and rendered for all page visitors.

Know when Userswp Front End Login Form User Registration User Profile Members Directory Plugin For Wp 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

Vendor (Wordfence) PRIMARY 6.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

PR:L for required subscriber authentication; UI:R corrected from vendor UI:N since victim must visit the injected page to trigger stored XSS.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

The UsersWP - Front-end login form, User Registration, User Profile & Members Directory plugin for WP plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Badge Widget Variable Substitution in all versions up to, and including, 1.2.69 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.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Medium
popular WordPress user-registration plugin, not universally deployed
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy