Skip to main content

Profile Builder EUVDEUVD-2026-102661

| CVE-2026-107748 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-16 Wordfence GHSA-q4wg-8pfx-jfgq
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-level account
  2. Delivery
    Set XSS payload as display_name
  3. Exploit
    Post comment persisting payload in wp_comments
  4. Execution
    Victim/admin views page
  5. Impact
    Script 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.

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 – 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

User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor 0 ≤4.0.3

Affected Packages

euvd user_profile_builder_beautiful_user_registration_forms_user_profiles_user_role_editor 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 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

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 6.4 MEDIUM

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/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 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

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Medium
popular but optional WordPress registration/profile plugin, not universally deployed
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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