Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain contributor-level account
-
DeliveryInsert logout-url shortcode with malicious button attribute
-
ExploitStore unsanitized payload in page
-
ExecutionVictim (e.g. admin) loads injected page
-
PersistScript executes in victim session
-
ImpactHijack session or perform privileged actions
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 with contributor-level privileges or above (PR:L) - the attacker must be able to author content and insert shortcodes. The specific trigger is the |
| Impact | This is a medium-severity stored XSS (CVSS 6.4, CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) that is best treated as a moderate, not top-tier, priority. The CVSS vector shows network reachability and low attack complexity, but PR:L confirms authentication is required - specifically contributor-level access - which materially limits the attacker population to users who already have some trusted role on the site. The scope change (S:C) and low confidentiality/integrity impact reflect that injected script executes in other users' browser sessions, including potentially administrators, enabling session/account compromise within the WordPress context. No EPSS score, CISA KEV listing, or public POC was provided in the input, so there is no signal of active exploitation or widespread automated weaponization; this appears to be a vendor/researcher-disclosed issue (Wordfence) rather than an in-the-wild threat. The signals are consistent rather than conflicting: a genuine but gated vulnerability. Note that for stored XSS the victim must load the injected page, which arguably warrants UI:R rather than the UI:N in the supplied vector - a point worth verifying, as it would lower the real-world score slightly. |
| Exploit ScenarioDerived | An attacker who holds (or registers for) a contributor account on a vulnerable WordPress site inserts the |
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 PeproDev Ultimate Profile Solutions WordPress plugin (all versions up to and including 8.2.36) allows an authenticated attacker holding contributor-level privileges or higher to inject arbitrary JavaScript into a page via the 'button' attribute of the shortcode, which is stored without sanitization and rendered without output escaping. The payload executes in the browser of any user who later views the injected page, and because the injected content lives in persistent post data it can trigger against administrators and other privileged viewers. Rated CVSS 6.4 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N); no public exploit code has been identified at time of analysis and there is no indication of active exploitation, so this should be treated as a moderate-priority issue rather than an emergency.
RemediationAI
Update the PeproDev Ultimate Profile Solutions plugin to a release newer than 8.2.36 - the upstream fix is published in the WordPress.org plugin repository as changeset 3719931 (https://plugins.trac.wordpress.org/changeset/3719931/peprodev-ups), so installing the first tagged version after 8.2.36 is the primary remediation; because the exact patched version tag is not independently confirmed here, verify the plugin's changelog in the WordPress admin Plugins screen before and after updating rather than assuming a specific version number. Where immediate updating is not possible, the most effective compensating control is to remove or tightly restrict contributor-and-above accounts on the site, since the attack requires that privilege level - review existing users with the Contributor, Author, Editor, and Administrator roles and demote or delete any that are not trusted; the trade-off is that legitimate guest authors lose publishing ability. Related hardening steps: disable open user registration and any plugin feature that auto-grants contributor-level access, since self-registration is a common path to obtaining the required account; install a WordPress security plugin or WAF rule set that sanitizes/strips shortcode attributes and blocks script tags in post content as a stop-gap, understanding that signature-based filtering can be bypassed with obfuscated payloads and may also break legitimate shortcode markup; and audit existing post content for the 'logout-url' shortcode with unexpected attributes and clean any hits, keeping in mind that cleanup must occur after the patch is applied or the injected content can be re-created. Deploying a Content-Security-Policy that disallows inline and third-party script on authenticated admin pages adds defense in depth but has a high chance of breaking WordPress admin and plugin UI functionality, so test carefully before enforcement.
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 affected component is a WordPress plugin, and the root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation, i.e. cross-site scripting) arising from a classic missing-sanitization/missing-escaping pair on a shortcode attribute. WordPress shortcodes accept attributes that are parsed into an attribute array at render time; the 'button' attribute of the shortcode is accepted from post content and then emitted into HTML without being passed through esc_attr()/esc_html() or an equivalent allow-list filter. Because the value is persisted in the post body (wp_posts post_content) rather than reflected, this is a stored/persistent XSS rather than a reflected one - the payload survives and fires on every subsequent page view. The scope-changed (S:C) element of the CVSS vector reflects that script executing in the WordPress origin can act on behalf of the viewing user beyond the immediate vulnerable component, for example by abusing the logged-in administrator's session to perform privileged actions. The CPE cpe:2.3:a:peprodev:peprodev_ultimate_profile_solutions:*:*:*:*:*:*:*:* confirms the vendor namespace is PeproDev and that the advisory applies to all tracked versions of the 'peprodev-ups' plugin, matching the description's 'up to and including 8.2.36' range.
Know when Peprodev Ultimate Profile Solutions 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
Contributor authentication required so PR:L; stored payload executes cross-user so S:C with low C/I and no availability impact; AC:L as injection is straightforward.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The PeproDev Ultimate Profile Solutions plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the logout-url shortcode's 'button' attribute in all versions up to, and including, 8.2.36 due to insufficient input sanitization and output escaping on user supplied attributes. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
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.
EUVD-2026-96300
GHSA-7c69-582w-m4jr
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB