CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')

What is CWE-444?

CWE-444 is Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling'). The flaw arises when The product is an intermediary HTTP agent, such as a proxy or firewall, but interprets malformed HTTP requests or responses differently from the client or server that ultimately processes them.

OWASP TOP 10:2025 RANK6 — A06:2025 — Insecure Design
Related CVES (365 days)-
AbstractionBase
Likelihood of exploit-

No data

No vulnerability data for CWE-444

No data

No vulnerability data in CISA KEV for CWE-444

Official definition

ByMitre CWE

The product acts as an intermediary HTTP agent (such as a proxy or firewall) in the data flow between two entities such as a client and server, but it does not interpret malformed HTTP requests or responses in ways that are consistent with how the messages will be processed by those entities that are at the ultimate destination.

HTTP requests or responses ("messages") can be malformed or unexpected in ways that cause web servers or clients to interpret the messages in different ways than intermediary HTTP agents such as load balancers, reverse proxies, web caching proxies, application firewalls, etc. For example, an adversary may be able to add duplicate or different header fields that a client or server might interpret as one set of messages, whereas the intermediary might interpret the same sequence of bytes as a different set of messages. For example, discrepancies can arise in how to handle duplicate headers like two Transfer-encoding (TE) or two Content-length (CL), or the malicious HTTP message will have different headers for TE and CL.

The inconsistent parsing and interpretation of messages can allow the adversary to "smuggle" a message to the client/server without the intermediary being aware of it.

This weakness is usually the result of the usage of outdated or incompatible HTTP protocol versions in the HTTP agents.

Detailed description

Intermediary HTTP agents, including load balancers, reverse proxies, caching proxies, and application firewalls, may parse a malformed or unexpected message differently from the client or server at the destination. Differences can involve duplicate headers such as two Transfer-Encoding or two Content-Length fields, or conflicting Transfer-Encoding and Content-Length headers. An attacker can use the discrepancy to smuggle a message past the intermediary without its awareness, a condition commonly associated with outdated or incompatible HTTP protocol versions.

Characteristics

The weakness is characterized by disagreement among an intermediary, client, and destination server about the boundaries or meaning of an HTTP message. It can involve duplicate or conflicting headers, including Transfer-Encoding and Content-Length, and can arise when HTTP agents use outdated or incompatible protocol versions. The intermediary may process one message sequence while the destination processes another, allowing content to pass through without the intermediary recognizing it.

Common consequences

The record identifies impacts to integrity, non-repudiation, and access control, including unexpected state, concealed activity, and bypass of protection mechanisms. Representative effects include web cache poisoning by causing a server to associate one URL with another URL's cached page, bypassing firewall protections to reach a web application without authorization, and invoking a script or page that returns client credentials.

ImpactScopeExplanation
Unexpected State, Hide Activities, Bypass Protection MechanismIntegrity, Non-Repudiation, Access ControlAn attacker could create HTTP messages to exploit a number of weaknesses including 1) the message can trick the web server to associate a URL with another URL's webpage and caching the contents of the webpage (web cache poisoning attack), 2) the message can be structured to bypass the firewall protection mechanisms and gain unauthorized access to a web application, and 3) the message can invoke a script or a page that returns client credentials (similar to a Cross Site Scripting attack).

Risk mitigations

  • Strict parsing: Use a web server that applies strict HTTP parsing, such as Apache.
  • Use only SSL communication.
  • Terminate the client session after each request.
  • Caching control: Configure all pages as non-cacheable.
  1. ImplementationUse a web server that employs a strict HTTP parsing procedure, such as Apache [REF-433].
  2. ImplementationUse only SSL communication.
  3. ImplementationTerminate the client session after each request.
  4. System ConfigurationTurn all pages to non-cacheable.

Detection methods

Automated static analysis, commonly called Static Application Security Testing (SAST), can identify some instances by analyzing source or compiled code without execution. It typically models data flow and control flow, then searches for potentially vulnerable patterns connecting input sources to sinks where data interacts with external components. This approach is limited to cases that can be represented by such analyzable patterns and will not necessarily identify every inconsistent interpretation between deployed HTTP agents.

MethodApproachEffectiveness
Automated Static AnalysisAutomated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)-

Representative vulnerabilities

The official record lists the following representative examples, not an exhaustive set:

  • CVE-2022-24766: an SSL/TLS-capable proxy can permit HTTP smuggling when used with HTTP/1.0 services because HTTP messages within another message are interpreted and sanitized inconsistently.
  • CVE-2021-37147: improper header validation by a caching proxy server can allow HTTP response smuggling using an LF line ending.
  • CVE-2020-8287: the Node.js platform allows request smuggling through two Transfer-Encoding headers.
  • CVE-2006-6276: web servers allow request smuggling through inconsistent HTTP headers.
  • CVE-2005-2088 and CVE-2005-2089: HTTP servers allow request smuggling when both Transfer-Encoding: chunked and Content-Length are present.
Sources (2)

CWE™ Program, operated by The MITRE Corporation. Copyright © 2006–2026, The MITRE Corporation. The MITRE Corporation hereby grants you a non-exclusive, royalty-free license to use CWE for research, development, and commercial purposes. CWE Terms of Use.

Learn more

Run an in-depth assessment with complete web risk management

CyStack VulnScan continuously discovers assets, validates vulnerabilities, and helps security teams prioritize remediation across the organization.