Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister subscriber-level account
-
DeliverySet XSS payload as display_name
-
ExploitPost comment persisting payload in wp_comments
-
ExecutionVictim/admin views page
-
ImpactScript executes in their browser
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 | Requires an authenticated WordPress account at subscriber level or above on a site running User Profile Builder <=4.0.3, meaning the site must permit open/self-service registration or the attacker must already hold a low-privilege account. The attacker sets a script payload in the 'display_name' field and posts a comment; because the unsanitized value is stored in wp_comments.comment_author, the payload persists and fires whenever any user renders the affected page - independent of later deletion or renaming of the attacker's account. Limiting factors: exploitation needs valid authentication (not fully anonymous), and sites that disable public registration or restrict subscriber accounts substantially reduce exposure; impact is confined to script execution in viewers' browsers (session/CSRF-token theft, UI manipulation) rather than direct server compromise. |
| Impact | This is a genuine but mid-tier risk rather than an emergency. The CVSS 3.1 base score is 6.4 (Medium) with vector AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N - network-reachable, low complexity, but requiring authentication (PR:L, subscriber-level) and yielding only low confidentiality/integrity impact with a scope change (stored script executing in other users' browser context). No EPSS score, CISA KEV listing, or public POC is present in the provided data, so by the input signals exploitation status is 'no public exploit identified at time of analysis.' There is no SSVC decision data supplied. The main signals are internally consistent: the authenticated-low-privilege requirement in the CVSS vector matches the description's 'subscriber-level access and above,' so there is no AV:N-vs-local contradiction to flag. The notable aggravating detail beyond raw CVSS is persistence semantics - the payload lives in wp_comments.comment_author independently of the attacker's account, so defenders cannot neutralize it merely by banning the user or resetting the display name; the comment row must be purged. Bottom line: a credible stored-XSS priority for sites that allow open or low-trust registration, but not a drop-everything issue absent evidence of active exploitation. |
| Exploit ScenarioDerived | On a WordPress site running User Profile Builder <=4.0.3 with open registration, an attacker registers a subscriber account and sets a malicious script as their display_name, then posts a comment so the payload is stored in wp_comments.comment_author. When any visitor or administrator later views the page containing that comment, the script executes in their browser session. No public exploit code is identified in the provided data, and exploitation requires an authenticated low-privilege account. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Stored cross-site scripting in the WordPress Profile Builder plugin (CozmoLabs) affects all versions up to and including 4.0.3 and allows an authenticated subscriber-level user to inject persistent JavaScript that executes in the browsers of anyone viewing an affected page. The payload is written through the 'display_name' parameter and, critically, is stored in wp_comments.comment_author, so it survives deleting or renaming the attacker's account and continues to fire as long as the poisoned comment is rendered. Exploitation requires the target site to allow self-service registration or the attacker to already hold a low-privilege account; no public exploit identified at time of analysis, and the plugin's own vendor-reported severity is moderate (CVSS 6.4, PR:L, scope-changed).
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed. The corrective code change is WordPress.org plugin changeset 3741133 (https://plugins.trac.wordpress.org/changeset/3741133/profile-builder), so administrators should update Profile Builder to the first tagged release published after 4.0.3 that contains this changeset - verify the changelog on the plugin page rather than assuming a specific version number, since no fixed version is stated in the available data. Until the update is applied, the highest-value compensating controls are: disable public/self-service user registration (Settings → General) or restrict new accounts to manually vetted roles, which removes the attacker's foothold entirely; disable comments or enable strict comment moderation with 'hold all comments for approval' so no injected comment_author value is rendered to visitors - the trade-off is reduced engagement and moderator workload; and, if the site must keep open registration, remove or restrict the front-end display-name field via a profile-builder field filter or custom code that strips HTML from the submitted value before it is written. A WAF or WordPress security plugin that blocks script-tag payloads in profile and comment submissions provides defence in depth but will not repair already-stored payloads. Because the payload lives in wp_comments.comment_author, remediation also requires reviewing and cleaning existing comment rows - audit wp_comments for comment_author values containing HTML/script markup and delete or sanitize those rows directly in the database, since patching alone does not neutralize comments injected before the fix. Output-escaping filters applied at the comment rendering layer are an effective stopgap, but they may alter legitimate display names that contain unusual characters.
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 root cause is CWE-79 (improper neutralization of input during web page generation) in the plugin's display-name handling code - specifically the front-end display-name field (front-end/default-fields/display-name/display-name.php around line 81) and the related profile functions in features/functions.php (lines 582, 585 and 593), where the submitted value is neither sanitized on input nor escaped on output. The interesting technical wrinkle is WordPress's data model: when a user posts a comment, WordPress denormalizes the author's display name into the wp_comments.comment_author column. Because Profile Builder lets a low-privileged user set that display name to an arbitrary string, the script payload is copied into a separate database table that is not linked to the user record at render time. Deleting the account, changing the display name, or renaming the user therefore does not remove the stored script, making this a persistent (not reflected) XSS. The CVSS 3.1 vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N captures the network attack surface, low attack complexity, required low-privilege authentication, no user interaction, and a scope change - the vulnerable component (the plugin/comment rendering) affects resources beyond its own security authority (other users' sessions in the WordPress front end). Impact is limited to client-side script execution (session and CSRF-token theft, UI manipulation, silent actions on behalf of viewers), not server-side compromise.
Know when User Profile Builder Beautiful User Registration Forms User Profiles User Role Editor 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
Subscriber account needed so PR:L; stored payload executes in other users' browser context crossing authority so S:C with low C/I and no availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The User Profile Builder - Beautiful User Registration Forms, User Profiles & User Role Editor plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'display_name' parameter in all versions up to, and including, 4.0.3 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. The payload persists in wp_comments.comment_author independently of the user account, so removing or changing the attacker's display name after the comment is posted does not neutralize the stored script.
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 User Profile Builder Beautiful User Registration Forms User Profiles User Role Editor
View allUnauthenticated privilege escalation in the Cozmoslabs User Profile Builder WordPress plugin (all versions up to and inc
Stored cross-site scripting in the WordPress Profile Builder plugin (Cozmoslabs) affects all versions up to and includin
Stored cross-site scripting in the User Profile Builder WordPress plugin (Cozmoslabs, versions ≤3.15.7) permits unauthen
Stored cross-site scripting in the WordPress plugin User Profile Builder (Profile Builder) through version 4.0.2 allows
Stored Cross-Site Scripting in the User Profile Builder WordPress plugin (versions up to and including 4.0.0) allows aut
Stored cross-site scripting in the WordPress plugin User Profile Builder (Profile Builder by Cozmoslabs) through version
Stored XSS in the User Profile Builder WordPress plugin (all versions through 4.0.0) allows unauthenticated attackers to
User Profile Builder plugin for WordPress up to version 3.15.5 allows authenticated subscribers and above to reassign ow
EUVD-2026-102661
GHSA-q4wg-8pfx-jfgq
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB