CVE-2020-1710 Overview
CVE-2020-1710 is an HTTP Request Smuggling vulnerability affecting Red Hat JBoss Enterprise Application Platform (EAP) and related products. The vulnerability arises from improper parsing of HTTP request headers, specifically the field-name component, which does not comply with RFC7230 specifications. Instead of returning an HTTP 400 error for malformed requests, the affected JBoss EAP versions incorrectly return an HTTP 200 response, potentially allowing attackers to bypass security controls or manipulate request routing.
Critical Impact
Attackers can exploit this HTTP parsing inconsistency to smuggle malicious requests, potentially bypassing security filters, accessing unauthorized resources, or poisoning web caches in environments using JBoss EAP as a backend server.
Affected Products
- Red Hat JBoss Enterprise Application Platform 6.4.21
- Red Hat JBoss Enterprise Application Platform 7.0.0, 7.2.0, 7.3.0
- Red Hat JBoss Data Grid 7.0.0
- Red Hat OpenShift Application Runtimes
- Red Hat Single Sign-On
Discovery Timeline
- 2020-09-16 - CVE-2020-1710 published to NVD
- 2024-11-21 - Last updated in NVD database
Technical Details for CVE-2020-1710
Vulnerability Analysis
This vulnerability stems from non-compliant HTTP header parsing in JBoss EAP. According to RFC7230, HTTP/1.1 message syntax requires strict validation of field-names in request headers. When a malformed field-name is received, the server should respond with HTTP 400 (Bad Request). However, JBoss EAP 6.4.21 and other affected versions incorrectly accept these malformed requests and return HTTP 200, processing them as if they were valid.
This behavior creates a discrepancy between how JBoss EAP and upstream proxies or load balancers interpret the same HTTP request. When a front-end proxy and back-end server disagree on request boundaries, HTTP request smuggling becomes possible. An attacker can craft specially formatted requests that are interpreted differently by each component in the request chain.
Root Cause
The root cause lies in the HTTP parser's failure to properly validate field-name tokens according to RFC7230 Section 3.2.6. The specification mandates that field-names must consist only of token characters, and any deviation should result in request rejection. The JBoss EAP HTTP subsystem lacks this strict validation, allowing non-compliant characters in header field-names to pass through without triggering an error response.
Attack Vector
The attack is network-based and requires no authentication or user interaction. An attacker can send specially crafted HTTP requests containing malformed header field-names to a JBoss EAP server positioned behind a proxy or load balancer. The differing interpretations of these malformed requests between the front-end and back-end systems enable various attack scenarios:
When exploiting this vulnerability, an attacker crafts an HTTP request with a malformed header field-name that the front-end proxy rejects or interprets differently than JBoss EAP. This discrepancy can lead to request smuggling, where the attacker's payload is processed as a separate request by the backend server. The attacker requires only network access to the target application to exploit this vulnerability.
Detection Methods for CVE-2020-1710
Indicators of Compromise
- Unusual HTTP requests with malformed header field-names containing special characters or whitespace
- Backend logs showing HTTP 200 responses for requests that upstream proxies logged as malformed
- Discrepancies between access logs at proxy and application server tiers
- Unexpected application behavior or access to resources that should be restricted
Detection Strategies
- Implement web application firewall (WAF) rules to detect and block requests with non-compliant HTTP header field-names
- Monitor for HTTP desynchronization indicators such as mismatched Content-Length and Transfer-Encoding headers
- Deploy intrusion detection signatures that flag malformed HTTP headers targeting JBoss EAP endpoints
- Correlate access logs between load balancers and JBoss EAP servers to identify parsing inconsistencies
Monitoring Recommendations
- Enable verbose HTTP access logging on JBoss EAP servers to capture full request headers
- Configure upstream proxies to log rejected or malformed requests for correlation analysis
- Implement real-time alerting on anomalous HTTP response patterns, particularly HTTP 200 responses to syntactically invalid requests
- Monitor for CVE-2020-1710-related indicators using SIEM correlation rules
How to Mitigate CVE-2020-1710
Immediate Actions Required
- Upgrade JBoss EAP to a patched version that properly validates HTTP header field-names per RFC7230
- Review and apply Red Hat security advisories for all affected products
- Deploy or update WAF rules to reject requests with malformed HTTP headers before they reach JBoss EAP
- Audit network architecture to ensure consistent HTTP parsing across all tiers
Patch Information
Red Hat has acknowledged this vulnerability and tracks it in Red Hat Bug Report #1793970. Organizations should consult Red Hat's official security advisories for their specific product versions to obtain the appropriate patches. Ensure all instances of JBoss EAP, JBoss Data Grid, OpenShift Application Runtimes, and Single Sign-On are updated to patched versions.
Workarounds
- Configure upstream reverse proxies or load balancers to strictly validate HTTP headers and reject non-compliant requests before forwarding to JBoss EAP
- Implement network segmentation to limit direct access to JBoss EAP servers, ensuring all traffic passes through a security-hardened proxy tier
- Deploy application-layer firewalls with HTTP protocol validation capabilities to normalize requests before they reach vulnerable servers
- Enable strict HTTP parsing modes on any front-end components that support such configurations
# Example: Configure Apache HTTPD as a reverse proxy with strict HTTP validation
# Add to httpd.conf or virtual host configuration
# Enable mod_security for HTTP protocol enforcement
<IfModule mod_security2.c>
SecRuleEngine On
SecRequestBodyAccess On
# Block requests with malformed header field-names
SecRule REQUEST_HEADERS_NAMES "@rx [^a-zA-Z0-9\-]" \
"id:1001,phase:1,deny,status:400,msg:'Malformed header field-name detected'"
</IfModule>
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


