CVE-2025-23905 Overview
CVE-2025-23905 is a reflected cross-site scripting (XSS) vulnerability in the Johannes van Poelgeest Admin Options Pages WordPress plugin. The flaw affects all versions of admin-options-pages up to and including 0.9.7. The plugin fails to properly neutralize user-supplied input during web page generation, allowing attackers to inject arbitrary JavaScript that executes in the victim's browser. The vulnerability is tracked under CWE-79 and requires user interaction, typically a victim clicking a crafted link.
Critical Impact
Successful exploitation allows attackers to execute arbitrary JavaScript in an authenticated administrator's browser, potentially leading to session theft, account takeover, or unauthorized configuration changes.
Affected Products
- Johannes van Poelgeest Admin Options Pages plugin for WordPress
- All versions from n/a through 0.9.7
- WordPress installations with the admin-options-pages plugin enabled
Discovery Timeline
- 2025-02-14 - CVE-2025-23905 published to NVD
- 2026-04-23 - Last updated in NVD database
Technical Details for CVE-2025-23905
Vulnerability Analysis
The vulnerability is a reflected cross-site scripting flaw in the Admin Options Pages WordPress plugin. Reflected XSS occurs when an application accepts attacker-supplied data in a request and echoes that data back into the HTTP response without proper encoding or sanitization. An attacker crafts a malicious URL containing JavaScript payloads in query parameters. When a logged-in administrator or privileged user clicks the link, the injected script executes within the WordPress admin context.
Because the scope is changed (S:C in the CVSS vector), the injected script can affect resources beyond the vulnerable component itself, including the broader WordPress admin session. The EPSS score of 0.178% reflects a low predicted likelihood of exploitation, but the impact in compromised environments can be significant.
Root Cause
The root cause is improper neutralization of user input during web page generation, as classified by CWE-79. The plugin reflects request parameters into HTML output without applying output encoding functions such as esc_html(), esc_attr(), or wp_kses(). WordPress provides these context-aware escaping APIs specifically to prevent XSS, but the affected plugin code paths bypass them.
Attack Vector
Exploitation requires an attacker to craft a malicious URL pointing to an affected admin page parameter and deliver it to a privileged WordPress user. Common delivery channels include phishing emails, malicious comments, or third-party site redirects. When the victim visits the URL, the reflected payload executes in their browser session, inheriting their WordPress cookies and permissions. No authentication is required from the attacker to craft the payload, but a victim interaction is required for execution.
Detailed technical analysis is available in the Patchstack Plugin Vulnerability Report.
Detection Methods for CVE-2025-23905
Indicators of Compromise
- Suspicious query string parameters containing <script>, javascript:, onerror=, or onload= in requests to /wp-admin/ pages associated with the admin-options-pages plugin
- Unusual referer headers pointing to external domains preceding requests to plugin admin pages
- Unexpected administrator account changes, new user creations, or plugin installations following access to crafted URLs
- HTTP access logs showing URL-encoded payloads such as %3Cscript%3E in plugin parameters
Detection Strategies
- Inspect web server access logs for requests to admin-options-pages endpoints containing HTML or JavaScript metacharacters in query parameters
- Deploy a Web Application Firewall (WAF) ruleset that flags reflected XSS payload patterns against the WordPress admin path
- Correlate URL clicks from email gateways with subsequent WordPress administrative actions to identify successful phishing-driven exploitation
Monitoring Recommendations
- Enable WordPress audit logging to track administrator actions, plugin changes, and user role modifications
- Monitor outbound traffic from administrator workstations for connections to suspicious domains after WordPress admin sessions
- Alert on creation of new WordPress administrator accounts or modifications to existing privileged accounts
How to Mitigate CVE-2025-23905
Immediate Actions Required
- Identify all WordPress installations with the admin-options-pages plugin and confirm the installed version
- Deactivate the plugin until a patched version is verified and installed if 0.9.7 or earlier is present
- Force administrator session invalidation and password rotation if exploitation is suspected
- Train administrators to avoid clicking unsolicited links to WordPress admin URLs
Patch Information
At the time of publication, no fixed version is referenced in the available advisory. Refer to the Patchstack Plugin Vulnerability Report and the WordPress plugin repository for updates beyond version 0.9.7.
Workarounds
- Remove or deactivate the admin-options-pages plugin until a vendor patch is available
- Deploy a WAF rule to block requests containing script tags or JavaScript event handlers in query parameters targeting plugin admin pages
- Apply a strict Content Security Policy (CSP) on the WordPress admin interface to limit inline script execution
- Restrict access to /wp-admin/ by source IP address using web server access controls
# Example nginx rule to restrict wp-admin access by IP
location ~ ^/wp-admin/ {
allow 203.0.113.0/24;
deny all;
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

