# Read More Without Refresh < 4.3.1 - Unauthenticated Content Injection via Freemius SDK 'purchase_completed' Admin Notice

- **ID:** WPSEC-2026-1174
- **Plugin:** Read More Without Refresh (`read-more-without-refresh`), https://wordpress.org/plugins/read-more-without-refresh/
- **Affected versions:** from 4.1.0 before 4.3.1
- **Fixed in:** 4.3.1 (Update to 4.3.1 or later.)
- **Severity:** Low 3.7 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N)
- **Weakness:** CWE-74
- **Usage among sites WPSec scans:** plugin Low, affected versions Low (as of 2026-10-17)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/read-more-without-refresh
- **Fix released:** 2026-10-16
- **Published:** 2026-10-17
- **URL:** https://wpsec.com/vuln/WPSEC-2026-1174/

## Description

The Read More Without Refresh plugin for WordPress is vulnerable to Content Injection via the 'purchased_plan' and 'purchase_email' parameters handled by its bundled Freemius SDK in versions 4.1.0 up to, but not including, 4.3.1. This is due to the SDK saving a persistent 'plan_purchased' admin notice built from these request parameters whenever a wp-admin URL carrying 'purchase_completed' is loaded, during plugin initialisation and before any authentication, capability or nonce check. This makes it possible for unauthenticated attackers to inject arbitrary text into a sticky notice shown to administrators in the dashboard, for example misleading purchase or license messages used for phishing, on sites that have opted in to Freemius. HTML is stripped, so script injection is not possible.

## References

- https://wpsec.com/vuln/WPSEC-2026-1174/
- https://plugins.svn.wordpress.org/read-more-without-refresh/tags/4.3.1/
- https://wordpress.org/plugins/read-more-without-refresh/

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

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.
