Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as contributor-level user
-
DeliveryInject javascript-scheme link into pricing-table block
-
ExploitStore malicious block content
-
ExecutionHigher-privileged user views/interacts with content
-
PersistScript executes in victim browser session
-
ImpactHijack privileged session / escalate
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 account with contributor-level privileges or higher on the target WordPress site, and specifically targets the plugin block that renders a user-supplied link value without scheme validation (allowing script-bearing schemes such as javascript:). It is NOT self-triggering: a second, typically higher-privileged user must view and interact with the stored malicious pricing-table content for the payload to execute. Limiting factors: requires a pre-provisioned low-trust account (contributor), requires victim user interaction (UI:R), and only affects sites running Pricing Table versions 1.0.7 through before 2.1.5; sites that restrict contributor registration or have patched to 2.1.5+ are not exposed. |
| Impact | This is a stored XSS (CWE-79) in the Pricing Table WordPress plugin that realistically sits in the moderate tier despite its 6.8 base score. The provided CVSS vector (AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H) rates high/high/high impact, but this conflicts with the description: stored XSS does not typically cause total loss of confidentiality, integrity AND availability of the underlying system, and the vector's PR:H contradicts the description's 'contributor-level access and above,' which is a LOW-privilege authenticated role in WordPress - verify privilege level with WPScan/vendor. EPSS is low (0.18%, 8th percentile) and SSVC records Exploitation: none and Automatable: no, both consistent with the fact that exploitation requires an authenticated contributor account plus a second victim user viewing/interacting with the malicious content - i.e., not a mass-exploitable, drive-by remote flaw. Countervailing this, a public exploit exists (WPScan) and SSVC Technical Impact is 'Total.' Net: a real but conditional issue best treated as a patch-in-normal-cycle priority rather than an emergency, driven primarily by the need for a pre-existing low-trust authenticated account. |
| Exploit ScenarioDerived | A user holding a contributor (or higher) account on a WordPress site running Pricing Table < 2.1.5 inserts a malicious link value (e.g., a javascript: scheme URI) into a pricing-table block, which the plugin renders without scheme validation. When an editor or administrator later previews or interacts with that content, the script executes in their authenticated browser session, potentially enabling session/action abuse or privilege escalation toward site takeover. A public exploit/advisory is available from WPScan. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Stored cross-site scripting in the Pricing Table WordPress plugin (versions 1.0.7 through before 2.1.5) lets an authenticated user with contributor-level access or higher save a link value using a script-bearing scheme such as javascript: inside one of the plugin's blocks; that value is rendered without scheme validation and executes in the browser of another, typically higher-privileged user who views and interacts with the affected pricing table content. Vendor-released patch: 2.1.5, and publicly available exploit code exists, though CISA's SSVC assessment records no active exploitation, the issue is not KEV-listed, and EPSS is low at 0.18% (8th percentile). Practical exposure is limited because the attacker needs a pre-provisioned low-trust account and a second user must interact with the poisoned block, which places this in the moderate tier despite its base score.
RemediationAI
Upgrade the Pricing Table WordPress plugin to 2.1.5, the vendor-released fix version, which adds scheme validation for the block's link value; the WPScan advisory at https://wpscan.com/vulnerability/9a03a070-55a8-4d19-8bb3-e77ce6adc583/ (also referenced from the NVD entry https://nvd.nist.gov/vuln/detail/CVE-2026-86797) documents the issue and the fixed release. If immediate upgrade is not possible, reduce the attack surface by removing or downgrading contributor accounts and disabling contributor self-registration, since the stored payload requires a low-privileged authoring account to be planted; note this does not protect against existing stored payloads, so after patching audit recent pricing table content for javascript: or other non-http(s) schemes in link fields and clean any that are found. Sites that do not need the plugin's blocks can deactivate it entirely (no data loss if content is preserved, but pricing tables will no longer render), and sites that must keep it can restrict the block to trusted editors only, accepting the trade-off that legitimate contributor-submitted tables can no longer be created. No credential or network-level workaround exists, so patching to 2.1.5 remains the only complete fix; the vendor advisory is the authoritative source for the exact remediation steps and there is no indication of a version beyond 2.1.5 being required for this specific flaw.
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 / cross-site scripting) in how the Pricing Table plugin persists and renders a user-supplied link value within one of its editor blocks. Block attributes are normally passed through URL sanitizers such as esc_url() or scheme allow-listing (wp_allowed_protocols()/wp_kses) before being written into an href or similar attribute; here the scheme is not validated, so a value like javascript: (or another script-capable scheme) survives storage and is emitted into the page for the plugin's pricing table block. Because the malicious string is stored as post content rather than injected at request time, this is a stored (persistent) XSS, and because the payload executes in the origin of the WordPress site it can be used to act with the victim's session. The affected component is the WordPress plugin distributed under the slug pricing_table (CPE cpe:2.3:a:unknown:pricing_table:*:*:*:*:*:*:*:*), with EUVD-2026-100854 recording the vulnerable range as Pricing Table 1.0.7 < 2.1.5. The assessment vector AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N reflects the real exploit path: an authenticated contributor-or-higher account is abused for storage, a separate victim must interact for execution, and the script can reach beyond the block's own context (scope change) but with limited confidentiality and integrity impact on the site itself.
Know when Pricing Table 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:H/UI:R/S:U/C:H/I:H/A:H
Contributor role is low-privilege so PR:L (not PR:H); victim interaction gives UI:R; stored XSS executing in another user's context is S:C with limited C/I and no availability impact.
Primary rating from Vendor (WPScan).
CVSS VectorVendor: WPScan
Lifecycle Timeline
4DescriptionCVE.org
The Pricing Table WordPress plugin before 2.1.5 does not validate the scheme of a user-supplied link value in one of its blocks before rendering it, allowing users with contributor-level access and above to store malicious scripts that execute when another user views and interacts with the affected content.
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 Pricing Table
View allThe Pricing Table WordPress plugin before 3.6.1 fails to properly sanitize and escape user supplied POST data before it
Supsystic Pricing Table 1.8.7 contains an SQL injection vulnerability in the 'sidx' GET parameter that allows unauthenti
The Pricing Table by PickPlugins plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the Button Link i
EUVD-2026-100854
GHSA-m4gp-8vrv-j3cj
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB