CVE-2025-23656 Overview
CVE-2025-23656 is a Missing Authorization vulnerability [CWE-862] in the Saul Morales Pacheco Donate visa WordPress plugin. The flaw affects all plugin versions up to and including 1.0.0. Missing authorization checks on privileged actions allow an authenticated attacker with low privileges to store malicious JavaScript in the application. When another user views the affected page, the payload executes in their browser session, leading to Stored Cross-Site Scripting (XSS).
Critical Impact
Authenticated attackers can inject persistent JavaScript that executes in the browsers of site visitors and administrators, enabling session theft, forced administrative actions, and further compromise of the WordPress site.
Affected Products
- WordPress plugin: Saul Morales Pacheco Donate visa (donate-visa)
- All versions from unspecified initial release through 1.0.0
- WordPress sites with the vulnerable plugin installed and activated
Discovery Timeline
- 2025-01-27 - CVE-2025-23656 published to the National Vulnerability Database (NVD)
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-23656
Vulnerability Analysis
The vulnerability combines two weaknesses that compound one another. The plugin exposes actions that modify or store data without verifying that the requesting user is authorized to perform them. It also fails to properly sanitize or escape user-supplied input before writing it to persistent storage and later rendering it in HTML context.
An attacker with a low-privileged authenticated account can invoke the unprotected action and supply attacker-controlled input containing HTML or JavaScript. The payload is stored server-side and served back to any user who loads the affected page. Because the exploit requires user interaction and crosses a trust boundary, the scope is changed and the impact extends to other users, including administrators.
Root Cause
The root cause is a Missing Authorization weakness [CWE-862]. The plugin does not perform capability checks (for example, WordPress current_user_can()) or nonce validation on handlers that accept and persist input. Combined with missing output escaping, this allows Stored XSS to be introduced by any authenticated user rather than being restricted to trusted administrators.
Attack Vector
Exploitation requires network access to the WordPress site and a low-privileged authenticated session. The attacker submits a crafted request to the vulnerable plugin endpoint containing a JavaScript payload. When a victim, typically an administrator reviewing plugin-managed content, loads the page, the stored payload executes in the victim's authenticated context. See the Patchstack Vulnerability Report for advisory details.
No verified public exploit code is available. The vulnerability mechanism is described in prose per available advisory data.
Detection Methods for CVE-2025-23656
Indicators of Compromise
- Unexpected <script>, onerror=, or onload= strings stored in database tables or options associated with the donate-visa plugin.
- Outbound requests from administrator browsers to unknown external hosts shortly after loading plugin-managed pages.
- Creation of new WordPress administrator accounts or unexplained changes to user roles following administrator page views.
Detection Strategies
- Inventory WordPress installations and identify sites running the donate-visa plugin at version 1.0.0 or earlier.
- Review web server access logs for POST requests to plugin endpoints from low-privileged accounts containing HTML or JavaScript characters.
- Scan the wp_posts, wp_postmeta, and plugin-specific tables for stored content matching XSS signature patterns.
Monitoring Recommendations
- Alert on modifications to WordPress user roles and administrator account creation events.
- Monitor browser telemetry from privileged users for anomalous script execution or exfiltration to external domains.
- Enable and review WordPress audit logs for actions performed by subscriber or contributor-level accounts against plugin endpoints.
How to Mitigate CVE-2025-23656
Immediate Actions Required
- Deactivate and remove the donate-visa plugin until a patched release is confirmed available.
- Audit stored plugin data for injected scripts and remove any malicious content before reactivation.
- Reset passwords and invalidate active sessions for administrator accounts that may have viewed compromised pages.
Patch Information
At the time of publication, no fixed version is listed in the advisory. All versions through 1.0.0 are affected. Review the Patchstack Vulnerability Report for updates on remediation status and vendor guidance.
Workarounds
- Restrict new user registration and limit account creation to trusted individuals to reduce the pool of potential attackers.
- Deploy a Web Application Firewall (WAF) with rules that block XSS payloads targeting the plugin's request handlers.
- Apply Content Security Policy (CSP) headers that disallow inline scripts and restrict script sources to trusted origins.
# Example WordPress CLI commands to identify and remove the vulnerable plugin
wp plugin list --name=donate-visa --format=table
wp plugin deactivate donate-visa
wp plugin delete donate-visa
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

