# Leaky Paywall <= 5.3.1 - Unauthenticated Stored Cross-Site Scripting via Registration Form Fields

- **ID:** WPSEC-2026-2605
- **Plugin:** Leaky Paywall (`leaky-paywall`), https://wordpress.org/plugins/leaky-paywall/
- **Affected versions:** from 4.16.7 before 5.3.2
- **Fixed in:** 5.3.2 (Update to 5.3.2 or later.)
- **Severity:** High 7.2 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N)
- **Weakness:** CWE-79
- **Usage among sites WPSec scans:** plugin Low, affected versions None seen (as of 2026-11-05)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/leaky-paywall
- **Fix released:** 2026-11-04
- **Published:** 2026-11-05
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2605/

## Description

The Leaky Paywall plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the registration form's first and last name fields in all versions up to, and including, 5.3.1. This is due to insufficient input sanitization of the decoded 'form_data' fields, which are passed into the Stripe customer that is saved on the incomplete-user record, and insufficient output escaping when the Incomplete Users admin screen prints that customer data. This makes it possible for unauthenticated attackers to inject arbitrary web scripts that execute whenever an administrator views the affected incomplete-user record.

## References

- https://wpsec.com/vuln/WPSEC-2026-2605/
- https://plugins.svn.wordpress.org/leaky-paywall/tags/5.3.2/
- https://wordpress.org/plugins/leaky-paywall/

Source: WPSec, https://wpsec.com/vuln/WPSEC-2026-2605/

License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Free to use, share and adapt, also commercially, if you credit WPSec and link to this advisory.
