Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
Lifecycle Timeline
3DescriptionCVE.org
The Simple Download Counter plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'sdc_menu' shortcode in all versions up to, and including, 2.3. This is due to insufficient input sanitization and output escaping on user-supplied shortcode attributes, specifically the 'text' and 'cat' attributes. The 'text' attribute is output directly into HTML content on line 159 without any escaping (e.g., esc_html()). The 'cat' attribute is used unescaped in HTML class attributes on lines 135 and 157 without esc_attr(). This makes it possible for authenticated attackers, with Contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
AnalysisAI
The Simple Download Counter WordPress plugin contains a Stored Cross-Site Scripting (XSS) vulnerability in the 'sdc_menu' shortcode due to insufficient input sanitization and output escaping of the 'text' and 'cat' attributes. Authenticated attackers with Contributor-level access or higher can inject arbitrary JavaScript code into pages via these unescaped shortcode attributes, which will execute for all users visiting the affected pages. All versions up to and including 2.3 are vulnerable, with a CVSS score of 6.4 indicating moderate severity and the vulnerability requiring low attack complexity and only low privileges to exploit.
Technical ContextAI
This vulnerability is rooted in CWE-79 (Improper Neutralization of Input During Web Page Generation, also known as Cross-Site Scripting). The Simple Download Counter plugin (CPE: cpe:2.3:a:specialk:simple_download_counter:*:*:*:*:*:*:*:*) processes shortcode attributes through the WordPress shortcode API but fails to apply proper output encoding at critical points. Specifically, the 'text' attribute is output directly into HTML content at line 159 of functions-shortcode.php without using WordPress escaping functions like esc_html(), and the 'cat' attribute is embedded in HTML class attributes at lines 135 and 157 without using esc_attr(). This represents a classic failure in WordPress plugin development where user-controlled data flows through shortcode handlers into rendered page output without sanitization or escaping.
RemediationAI
The primary remediation is to upgrade the Simple Download Counter plugin to a version later than 2.3 that includes fixes for output escaping. Users should immediately review the WordPress plugin repository and check for an updated version that properly applies esc_html() to the 'text' attribute output and esc_attr() to the 'cat' attribute in HTML class contexts. Until a patched version is available, administrators should restrict the ability to use shortcodes or edit posts/pages to trusted administrators only by reducing or removing Contributor-level permissions for untrusted users. Additionally, implement Content Security Policy (CSP) headers at the web server or reverse proxy level to restrict inline script execution, which would mitigate stored XSS attacks even if malicious shortcodes are injected. The official plugin repository at https://plugins.trac.wordpress.org/browser/simple-download-counter/ should be monitored for patch releases.
More in Simple Download Counter
View allImproper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in Jeff Starr Simple
The Simple Download Counter plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's shortcode
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-16098