Skip to main content

CorvusPay WooCommerce Gateway CVE-2026-6939

| EUVDEUVD-2026-43161 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-07-11 Wordfence GHSA-3qh5-q7jr-f3w8
7.2
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify site running CorvusPay plugin
  2. Delivery
    POST to /wp-json/corvuspay/success/ with bogus signature
  3. Exploit
    approval_code XSS payload stored in DB
  4. Execution
    admin opens affected order page
  5. Persist
    script executes in admin session
  6. Impact
    hijack session or forge 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 CorvusPay WooCommerce Payment Gateway plugin (≤ 2.7.4) installed and active on an internet-reachable WordPress site, with its public REST endpoint POST /wp-json/corvuspay/success/ accessible; the endpoint's permission_callback is __return_true and its signature validation only logs - never halts - so no valid signature, credentials, or authentication are needed to write the payload. The limiting factor is that this is stored XSS: the injected script does not fire on injection but only when a victim (typically a logged-in operator viewing the order/success page) subsequently loads the affected page, so impact depends on someone rendering the poisoned record. There is no special non-default configuration barrier beyond having the plugin active.

Impact

The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N, base 7.2 High) reflects a network-reachable, low-complexity, unauthenticated flaw with a scope change - consistent with stored XSS where injected script executes in a different security context (e.g., a logged-in admin's browser). The elevated 7.2 relative to typical XSS stems from PR:N and the scope change. No EPSS score, KEV entry, or POC was supplied, so real-world exploitation pressure is currently unquantified: this is a Wordfence-catalogued vulnerability without confirmed active exploitation. One point warrants verification: the vector uses UI:N, yet stored XSS ordinarily requires a victim to load the injected page - the CVSS models this as scope/impact rather than user interaction, but defenders should treat 'victim views the poisoned order/success page' as a practical trigger. Overall this is a genuine but not emergency-tier issue: easy to exploit and unauthenticated, but the payoff is script execution in a victim's session (session/data theft, admin action forgery), not direct server compromise, and the plugin's deployment footprint is niche.

Exploit ScenarioDerived

An attacker sends a single crafted POST request to /wp-json/corvuspay/success/ with an arbitrary invalid signature and an approval_code containing a JavaScript payload; because the endpoint is public and the signature check does not stop execution, the payload is stored against an order. When a store administrator later opens that order in wp-admin (or the success page is rendered), the script runs in their authenticated session, enabling session/cookie theft or forged admin actions. No exploit code was provided, but the low attack complexity and unauthenticated network vector make this straightforward to weaponize.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 11, 2026

Stored cross-site scripting in the CorvusPay WooCommerce Payment Gateway plugin for WordPress (all versions through 2.7.4) lets unauthenticated attackers persist arbitrary JavaScript through the 'approval_code' parameter. The plugin exposes the REST route POST /wp-json/corvuspay/success/ with permission_callback set to __return_true, and its signature check only logs failures instead of blocking execution, so an attacker with any bogus signature can write a malicious approval_code into the order record, which then executes when a store operator or user views the affected page. Reported by Wordfence; no public exploit identified at time of analysis and no EPSS or KEV data provided.

RemediationAI

Upgrade to the latest release of the CorvusPay WooCommerce Payment Gateway plugin beyond 2.7.4; an upstream fix appears in the WordPress plugin repository changeset (https://plugins.trac.wordpress.org/changeset?reponame=&old=3576949%40corvuspay-woocommerce-integration&new=3576949%40corvuspay-woocommerce-integration), but no exact fixed version number is stated in the available data, so confirm the patched version via the Wordfence advisory before deploying. If you cannot patch immediately, apply compensating controls: restrict or block external access to the POST /wp-json/corvuspay/success/ REST route at the WAF or web-server layer, allow-listing only CorvusPay's callback source IP ranges (side effect - legitimate payment confirmations from other networks will fail, so validate the gateway's egress addresses first); enforce true server-side signature verification so invalid signatures halt processing rather than merely log; and deploy a WAF rule to strip or reject script/HTML in the approval_code field. Review existing orders for already-stored malicious approval_code values, since patching does not retroactively clean poisoned records.

Affected VersionsENISA

CorvusPay WooCommerce Payment Gateway 0 ≤2.7.4

Affected Packages

euvd corvuspay_woocommerce_payment_gateway 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 affected component is a WordPress/WooCommerce payment integration plugin (CPE cpe:2.3:a:corvusinfo:corvuspay_woocommerce_payment_gateway) that handles the CorvusPay hosted-payment callback. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation): the value returned by the payment processor's success callback (approval_code) is stored without sanitization and later rendered without output escaping, per the referenced source lines in class-wc-order-corvuspay.php (L185) and class-wc-gateway-corvuspay.php (L202, L1713). Compounding the sanitization gap is a broken authorization/trust-boundary design - the success REST endpoint is registered as public (__return_true) and its HMAC/signature validation is advisory only (it logs the outcome but does not return or die on failure), so the intended integrity control that would normally restrict this endpoint to the genuine payment gateway is effectively absent.

Know when Corvuspay Woocommerce Payment Gateway 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 7.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 7.2 HIGH

Public unauthenticated REST endpoint (PR:N, AV:N, AC:L) with a bypassable signature check; stored XSS executing in another context yields S:C with limited C:L/I:L and no availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/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
None
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

The CorvusPay WooCommerce Payment Gateway plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'approval_code' parameter in all versions up to, and including, 2.7.4 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 unauthenticated REST endpoint POST /wp-json/corvuspay/success/ is registered with permission_callback set to __return_true, and although a signature validation step exists it only logs the result without halting execution, meaning an attacker can supply a completely arbitrary signature and have a malicious approval_code stored in the database unchallenged.

Executive ViewAI

Why It Matters

The CorvusPay WooCommerce Payment Gateway plugin (all versions through 2.7.4) contains a stored cross-site scripting vulnerability that enables unauthenticated attackers to persistently inject malicious code into order records, exposing WordPress stores to customer data theft and administrative account compromise. This directly impacts any e-commerce operation using CorvusPay for payments, requiring urgent remediation to prevent data breach and credential harvesting.

Business Impact: High
Compensating Controls

Disable the plugin immediately until patch released. Deploy Web Application Firewall (WAF) rules targeting /wp-json/corvuspay/success/ to block JavaScript injection payloads. Restrict REST API access to authenticated users via authentication headers or IP allowlisting. Enable comprehensive audit logging for order modifications and REST API calls. Audit existing order records for injected code and remove malicious entries. Review administrator session logs for unauthorized access. Consider emergency migration to alternative payment gateway pending vendor patch availability.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Low
niche regional (CorvusPay) WooCommerce payment plugin, limited installs
Social Media
2
Sightings
Data Quality
6 sources
Confidence: High

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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
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.

References

Advisories & patches
ADVISORY https://nvd.nist.gov/vuln/detail/CVE-2026-6939 ADVISORY https://vuldb.com/vuln/377772 REF https://plugins.trac.wordpress.org/browser/corvuspay-woocommerce-integration/tags/2.7.2/includes/class-wc-gateway-corvuspay.php#L1713 REF https://plugins.trac.wordpress.org/browser/corvuspay-woocommerce-integration/tags/2.7.2/includes/class-wc-gateway-corvuspay.php#L202 REF https://plugins.trac.wordpress.org/browser/corvuspay-woocommerce-integration/tags/2.7.2/includes/class-wc-order-corvuspay.php#L185 REF https://plugins.trac.wordpress.org/browser/corvuspay-woocommerce-integration/tags/2.7.3/includes/class-wc-gateway-corvuspay.php#L1713 REF https://plugins.trac.wordpress.org/browser/corvuspay-woocommerce-integration/tags/2.7.3/includes/class-wc-gateway-corvuspay.php#L202 REF https://plugins.trac.wordpress.org/browser/corvuspay-woocommerce-integration/tags/2.7.3/includes/class-wc-order-corvuspay.php#L185 REF https://plugins.trac.wordpress.org/browser/corvuspay-woocommerce-integration/trunk/includes/class-wc-gateway-corvuspay.php#L1713 REF https://plugins.trac.wordpress.org/browser/corvuspay-woocommerce-integration/trunk/includes/class-wc-gateway-corvuspay.php#L202 REF https://plugins.trac.wordpress.org/browser/corvuspay-woocommerce-integration/trunk/includes/class-wc-order-corvuspay.php#L185 REF https://plugins.trac.wordpress.org/changeset?reponame=&old=3576949%40corvuspay-woocommerce-integration&new=3576949%40corvuspay-woocommerce-integration REF https://www.wordfence.com/threat-intel/vulnerabilities/id/d8a81c01-495f-4861-b66f-000072e99512?source=cve

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy