---
id: "CVE-2026-127204"
page: "https://infrastack.ai/live/CVE-2026-127204"
kind: "vulnerability"
aliases: ["CVE-2026-127204"]
title: "WooCommerce PayPal Pro plugin: unpaid orders can be marked as paid"
severity: "high"
cvss: 8.7
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["ecommerce", "package", "paypal", "woocommerce", "wordpress"]
not_affected_if: ["plugin-not-installed", "version-4.1.1-or-later"]
published_at: "2026-11-12T18:17:42+00:00"
first_seen_at: "2026-11-12T18:40:39+00:00"
updated_at: "2026-11-12T18:42:41+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-127204", "first_seen_at": "2026-11-12T18:40:39+00:00"}]
exploit_sources: []
---

# WooCommerce PayPal Pro plugin: unpaid orders can be marked as paid

Link for people: https://infrastack.ai/live/CVE-2026-127204 (this .md is for agents)

The WooCommerce PayPal Pro Payment Gateway plugin before 4.1.1 has an AJAX handler that does not check whether a PayPal capture succeeded or for the right amount. An unauthenticated remote attacker can mark unpaid orders as paid, so the store ships goods or services it was never paid for.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed version of the WooCommerce PayPal Pro Payment Gateway plugin in the WordPress admin Plugins screen; versions below `4.1.1` are affected.
- Search the plugin directory for the `pp_capture_order` AJAX handler to confirm the code path is present.

## Fix

- WooCommerce PayPal Pro Payment Gateway plugin: move to `4.1.1` or later.

## Timeline

- 2026-11-12T18:40:39+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-127204

## Documents

- [advisory] Third-party advisory: www.vulncheck.com https://www.vulncheck.com/advisories/woocommerce-paypal-pro-payment-gateway-payment-bypass-via-pp-capture-order

## From the sources

WooCommerce PayPal Pro Payment Gateway plugin before 4.1.1 contains an unauthenticated payment bypass vulnerability that allows remote attackers to mark unpaid orders as paid by exploiting the pp_capture_order AJAX handler, which is gated only by a public checkout nonce and fails to properly validate the PayPal capture response status. Attackers can supply a valid _paypal_order_id to trigger payment_complete() without verifying the capture status or amount, causing the store to fulfill goods or services that were never paid for and resulting in direct financial loss to the merchant.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
