Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify store not fronted by Cloudflare
-
DeliverySubmit guest checkout with malicious CF-IPCountry header
-
ExploitPayload persisted into order post-meta
-
ExecutionAdmin opens order in wp-admin
-
PersistScript executes in admin session
-
ImpactHijack session / perform admin 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 | Exploitation requires the attacker to control the CF-IPCountry HTTP request header during a WooCommerce guest checkout; the plugin writes this header value unsanitized into order post-meta and later renders it without output escaping. The primary limiting factor is header controllability: CF-IPCountry is normally set by Cloudflare, so an attacker can only plant an arbitrary value when the store is NOT behind Cloudflare (or where Cloudflare does not strip a client-supplied CF-IPCountry header). Additional prerequisites: guest checkout must be permitted (WooCommerce default) and a privileged user (store admin/staff) must subsequently view the injected order in wp-admin for the stored script to execute. No account or authentication is required to plant the payload. |
| Impact | This is a genuine but conditional risk rather than an emergency. The input CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N, base 7.2 High) indicates a remotely reachable, low-complexity, unauthenticated stored XSS whose scope-change (S:C) reflects payload execution in the context of whoever later views the order - typically a store administrator in wp-admin. No EPSS score, KEV entry, or public POC was provided in the intelligence set, so exploitation signals are weak: no public exploit identified at time of analysis and no evidence of active exploitation. The practical limiter is the injection vector itself - the CF-IPCountry HTTP header is normally populated by Cloudflare, so an attacker can only plant an arbitrary value where the store is NOT fronted by Cloudflare (or where a client-supplied CF-IPCountry header is not stripped/overwritten), which tempers the AC:L rating in real deployments. One signal tension to flag: the vector asserts UI:N, but exploitation realistically requires a privileged user (admin/staff) to open the injected order for the script to fire - verify whether victim interaction should raise effective user-interaction expectations. Overall: a legitimate stored-XSS admin-takeover vector worth patching promptly for exposed stores, but absent EPSS/KEV/POC it is not evidence of mass exploitation. |
| Exploit ScenarioDerived | An attacker performs a guest checkout on a vulnerable WooCommerce store while sending a crafted CF-IPCountry request header containing a JavaScript payload, which the plugin persists verbatim into the order's post-meta. When a store administrator later opens that order in the WordPress admin, the stored script executes in their authenticated session, enabling session/cookie theft or admin actions. No public exploit code was identified at time of analysis, and the header can typically only be spoofed when the store is not behind Cloudflare. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 17, 2026
Stored cross-site scripting in the European VAT Compliance Assistant for WooCommerce plugin (all versions through 1.36.10) allows unauthenticated attackers to plant arbitrary script by controlling the CF-IPCountry header during a guest checkout; the value is persisted verbatim in order post-meta and executes when a store administrator views the order in wp-admin. The main constraint is header controllability - CF-IPCountry is normally set by Cloudflare, so injection is practical only where the store is not behind Cloudflare or the edge does not overwrite client-supplied values - and a privileged user must subsequently open the affected order. No public exploit code or confirmed active exploitation has been identified at time of analysis, but the unauthenticated planting path and execution in the admin context warrant prompt patching.
RemediationAI
Upstream fix is available as plugin Trac changeset 3713548 (modifying trunk/record-order-details.php, diffed against 3676299), but a released patched version is not independently confirmed in the provided data, so verify the current plugin version on the WordPress.org plugin page and update beyond 1.36.10 as soon as a fixed release is listed. Until then, ensure the site is behind Cloudflare or another edge that overwrites client-supplied CF-IPCountry headers, or strip/reject inbound CF-IPCountry at the reverse proxy or WAF - the trade-off is that stores legitimately relying on client-provided geo headers for VAT logic may misclassify customers. If that cannot be done, disable WooCommerce guest checkout under Settings > Accounts & Privacy - the trade-off is reduced conversions and a changed checkout flow. Audit existing order post-meta for script content and review wp-admin order screens for injected markup; a wp-admin Content-Security-Policy can reduce execution but may break admin UI scripts. Monitor the Wordfence advisory and the Trac changeset for the patched release.
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 plugin uses the CF-IPCountry HTTP request header, a Cloudflare-supplied geolocation value, to determine a customer's VAT country during WooCommerce checkout. In record-order-details.php (lines 222 and 740) the header value is written into order post-meta without sanitization, and bootstrap.php (line 1779) wires the checkout/order-recording hooks; when an administrator or staff member later opens the order in wp-admin, the stored value is rendered without output escaping. This is CWE-79 (improper neutralization of input during web page generation), specifically stored XSS. The CPE cpe:2.3:a:davidanderson:european_vat_compliance_assistant_for_woocommerce:*:*:*:*:*:*:*:* covers the affected plugin through version 1.36.10. The independent assessment scores the issue CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N, reflecting that a privileged user must view the order for the payload to fire; the published CVSS vector uses UI:N. The scope change (S:C) reflects that the injected script executes in the wp-admin origin with administrator privileges, beyond those of the unauthenticated attacker.
Know when European Vat Compliance Assistant For Woocommerce 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:N/UI:N/S:C/C:L/I:L/A:N
Unauthenticated remote planting via guest checkout (PR:N, AV:N); UI:R because an admin must view the order to fire the script; S:C as execution occurs in the admin's browser context, with limited C/I and no availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The European VAT Compliance Assistant for WooCommerce plugin for WordPress is vulnerable to Stored Cross-Site Scripting via CF-IPCountry Header in all versions up to, and including, 1.36.10 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The malicious header value is persisted verbatim into order post-meta during a guest checkout, meaning no account or authentication is required to plant the payload.
Articles & Coverage 1
Executive ViewAI
The European VAT Compliance Assistant for WooCommerce plugin (all versions through 1.36.10) allows stored script injection via the CF-IPCountry header during guest checkout, with execution when a store administrator opens the affected order in wp-admin. Because no vendor patch is available, store administrators remain exposed to session compromise and unauthorized administrative actions that could affect order integrity, customer data, and payment workflows. Leadership should treat this as a high-priority e-commerce administrative risk and authorize interim edge and access controls immediately.
No vendor-released patch identified at time of analysis; interim mitigations include enforcing CF-IPCountry overwrite at the edge (e.g., Cloudflare Transform Rules), blocking or sanitizing client-supplied CF-IPCountry values via WAF, restricting wp-admin access to trusted networks, disabling the plugin where not essential, and auditing order post-meta for script 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.
EUVD-2026-103277
GHSA-v4p8-57qj-v3xg
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB