VYPR
Unrated severityNVD Advisory· Published Feb 18, 2025· Updated Apr 8, 2026

Threepress <= 1.7.1 - Authenticated (Contributor+) Stored Cross-Site Scripting

CVE-2024-13395

Description

The Threepress plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's 'threepress' shortcode in all versions up to, and including, 1.7.1 due to insufficient input sanitization and output escaping on user supplied attributes. 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.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

Affected products

3

Patches

Vulnerability mechanics

Root cause

"Insufficient input sanitization and output escaping on user-supplied shortcode attributes allows stored XSS."

Attack vector

An authenticated attacker with contributor-level access or above can inject arbitrary web scripts by crafting a malicious shortcode attribute (e.g., `bg_color` or `name`) containing JavaScript payloads. When the shortcode is rendered on a page, the unsanitized attribute values are embedded into the page output via `json_encode($attr)`, causing the injected script to execute in the browser of any user who visits the page. This is a classic Stored Cross-Site Scripting (XSS) attack [CWE-79].

Affected code

The vulnerability resides in the `shortcode()` method of the Threepress plugin (file `threepress.php`). The method takes user-supplied shortcode attributes and passes them directly into `json_encode($attr)` without sanitizing or escaping the attribute values. Specifically, attributes such as `name`, `bg_color`, and others are not filtered before being output in the rendered shortcode response.

What the fix does

The patch (version 1.7.2) does not appear in the provided bundle; however, the advisory states that the fix involves adding proper input sanitization and output escaping on user-supplied shortcode attributes. The vulnerable code in `shortcode()` directly outputs `json_encode($attr)` without filtering attribute values like `name` or `bg_color`. A proper fix would escape or validate each attribute before it is included in the JSON output, preventing script injection.

Preconditions

  • authAttacker must have at least contributor-level access to the WordPress site
  • inputAttacker must be able to insert or edit posts/pages containing the `[threepress]` shortcode

Generated on Jun 16, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

3

News mentions

0

No linked articles in our index yet.