CVE-2026-9189 json
Contact Form 7 – PayPal & Stripe Add-on <= 2.4.9 - Unauthenticated Payment Bypass via Insufficient Verification of Data Authenticity via PayPal IPN Handler ('invoice'/'mc_gross' Verification)
published 5mo ago modified 3mo ago also EUVD-2026-33265
- cvss
- 5.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 10%
- public exploits
- 0
- none known
Summary
The Contact Form 7 – PayPal & Stripe Add-on plugin for WordPress is vulnerable to Payment Bypass via Insufficient Verification of Data Authenticity in all versions up to, and including, 2.4.9. Although `cf7pp_paypal_ipn_handler()` correctly validates IPN authenticity by posting back to PayPal with `cmd=_notify-validate`, it fails to compare the IPN payload's `mc_gross` (payment amount), `mc_currency`, or `receiver_email` fields against the corresponding stored order values before passing the attacker-controlled `invoice` field directly to `cf7pp_complete_payment()`, which marks the order completed after only an integer cast with no amount verification. This makes it possible for unauthenticated attackers to mark arbitrary high-value pending orders as fully paid by making a minimal real PayPal payment and crafting an IPN whose `invoice` parameter references the targeted order, effectively completing purchases without tendering the required payment amount.
Is CVE-2026-9189 in your stack? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 5mo ago
Exploit prediction
0.20% chance of exploitation in the next 30 days, higher than 10% of all scored CVEs (FIRST EPSS, 2026-11-11).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N |
Affected products
- scottpaterson Contact Form 7 – PayPal & Stripe Add-on
Classification
- Weakness
-
- CWE-345 Insufficient Verification of Data Authenticity
- Technology feeds
References
- wordfence.com /threat-intel/vulnerabilities/id/5e274781-1c20-4224-bc10-26dadb9b1e07?source=cve
- plugins.trac.wordpress.org /browser/contact-form-7-paypal-add-on/tags/2.4.8/includes/payments/paypal_handler.php#L106
- plugins.trac.wordpress.org /browser/contact-form-7-paypal-add-on/tags/2.4.8/includes/payments/paypal_handler.php#L75
- plugins.trac.wordpress.org /browser/contact-form-7-paypal-add-on/tags/2.4.8/includes/payments/functions.php#L31
- plugins.trac.wordpress.org /browser/contact-form-7-paypal-add-on/tags/2.4.6/includes/payments/paypal_handler.php#L106
- plugins.trac.wordpress.org /browser/contact-form-7-paypal-add-on/tags/2.4.6/includes/payments/paypal_handler.php#L75
- plugins.trac.wordpress.org /browser/contact-form-7-paypal-add-on/tags/2.4.6/includes/payments/functions.php#L31
- plugins.trac.wordpress.org /changeset/3551197/contact-form-7-paypal-add-on
Sources
- CVE List CVE-2026-9189
- NVD CVE-2026-9189
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.