CWEweakness
CWE-444 Inconsistent Interpretation of HTTP Requests
- Alternate terms
- HTTP Request Smuggling, HTTP Response Smuggling, HTTP Smuggling
- Abstraction
- Base
- Structure
- Simple
- Status
- Incomplete
- Languages
- Not Language-Specific
- CWE version
- 5.0
Description
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.
Extended description
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.
Common consequences
• Integrity, Non-Repudiation, Access Control: Unexpected State, Hide Activities, Bypass Protection Mechanism — An 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).
Potential mitigations
• [Implementation] Use a web server that employs a strict HTTP parsing procedure, such as Apache [REF-433].
• [Implementation] Use only SSL communication.
• [Implementation] Terminate the client session after each request.
• [System Configuration] Turn all pages to non-cacheable.
Detection methods
• Automated Static Analysis: Automated 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.)
Observed examples
• CVE-2022-24766: SSL/TLS-capable proxy allows HTTP smuggling when used in tandem with HTTP/1.0 services, due to inconsistent interpretation and input sanitization of HTTP messages within the body of another message
• CVE-2021-37147: Chain: caching proxy server has improper input validation (CWE-20) of headers, allowing HTTP response smuggling (CWE-444) using an "LF line ending"
• CVE-2020-8287: Node.js platform allows request smuggling via two Transfer-Encoding headers
• CVE-2006-6276: Web servers allow request smuggling via inconsistent HTTP headers.
• CVE-2005-2088: HTTP server allows request smuggling with both a "Transfer-Encoding: chunked" header and a Content-Length header
• CVE-2005-2089: HTTP server allows request smuggling with both a "Transfer-Encoding: chunked" header and a Content-Length header
Related
Attack pattern · CAPEC (2)
Observed example · CVE (6)
- CVE-2022-24766 mitmproxy is an interactive, SSL/TLS-capable intercepting proxy. vulnerability
- CVE-2021-37147 Improper input validation vulnerability in header parsing of Apache Traffic Server allows an attacker to smuggle requests. vulnerability
- CVE-2020-8287 Node.js versions before 10.23.1, 12.20.1, 14.15.4, 15.5.1 allow two copies of a header field in an HTTP request (for example, two… vulnerability
- CVE-2006-6276 HTTP request smuggling vulnerability in Sun Java System Proxy Server before 20061130, when used with Sun Java System Application Server or… vulnerability
- CVE-2005-2088 The Apache HTTP server before 1.3.34, and 2.0.x before 2.0.55, when acting as an HTTP proxy, allows remote attackers to poison the web… vulnerability
- CVE-2005-2089 Microsoft IIS 5.0 and 6.0 allows remote attackers to poison the web cache, bypass web application firewall protection, and conduct XSS… vulnerability
Child of · CWE (1)
- CWE-436 Interpretation Conflict weakness
Referenced by CAPEC · weakness (2)
Referenced by CVE · weakness (461)
- CVE-2026-118264 Echo is a Go web framework. vulnerability
- CVE-2026-103995 Response body and chunk parsing would handle non-hex or negative integers incorrectly which could result in misinterpreting HTTP response… vulnerability
- CVE-2026-114216 Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') vulnerability in the HTTP/1.1 chunked body reader of… vulnerability
- CVE-2026-115823 Starman versions before 0.4019 for Perl send response bodies for HEAD requests, desynchronizing responses on keep-alive connections. vulnerability
- CVE-2026-115877 Twisted is an event-based framework for internet applications, supporting Python 3.6+. vulnerability
- CVE-2026-112212 GitLab has remediated an issue in GitLab CE/EE affecting all versions from 18.3 before 19.3.6, 19.4 before 19.4.3, and 19.5 before 19.5.1… vulnerability
- CVE-2025-31699 Apache Traffic Server can return an origin connection to the shared pool while the origin is still waiting on a request body the client… vulnerability
- CVE-2025-55702 When a client sends a POST with Expect: 100-continue and the origin answers before reading the body, Apache Traffic Server parses the… vulnerability
- CVE-2026-111809 Apache Traffic Server allows request smuggling via HEAD requests that carry Content-Length or Transfer-Encoding. vulnerability
- CVE-2026-111816 Apache Traffic Server forwarded a malformed 302 response that should have been rejected as a parse error, because the Transfer-Encoding:… vulnerability
- CVE-2026-86146 Inconsistent interpretation of HTTP requests (HTTP request/response smuggling) in the bundled HTTP/1.1 parser of Apache bRPC (version <… vulnerability
- CVE-2026-105298 Summary Before version 0.9.0, Pingora accepted HTTP/2 requests whose Host header differed from the :authority pseudo-header. vulnerability
- CVE-2026-105299 Summary Before version 0.9.0, the HTTP/1 upstream path in pingora-proxy passed the downstream request through upstream_request_filter and… vulnerability
- CVE-2026-93003 The Web add-on's HTTP server searches the entire request packet for header fields instead of stopping at the end of the header section. vulnerability
- CVE-2026-111750 AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. vulnerability
- CVE-2026-57488 pupnp is an SDK for development of UPnP device and control point applications. vulnerability
- CVE-2026-102479 In Eclipse Vert.x versions [5.0.0,5.0.12] or [5.1.0,5.1.9] or [5.2.0, 5.2.0], the Vert.x HTTP/1.x decoder uses a canonicalization for well… vulnerability
- CVE-2026-88829 A flaw was found in BusyBox httpd's reverse proxy feature. vulnerability
- CVE-2026-61642 Squid is a caching proxy for the Web. vulnerability
- CVE-2026-70188 Inconsistent interpretation of http requests ('http request/response smuggling') in ASP.NET Core allows an unauthorized attacker to bypass… vulnerability
- CVE-2026-88092 Inconsistent interpretation of http requests ('http request/response smuggling') in ASP.NET Core allows an unauthorized attacker to perform… vulnerability
- CVE-2026-56866 When http.Transport sends an HTTP/1 CONNECT request with a non-empty Request.Body, it writes the body directly to the connection without… vulnerability
- CVE-2026-78660 Historically, we have been rather lax about malformed framing-related headers in our HTTP/2 implementation, as they cannot interfere with… vulnerability
- CVE-2026-94439 When an HTTP server handler sends a 2xx response to an HTTP/1 CONNECT request and returns without hijacking the connection, the server… vulnerability
- CVE-2026-77802 In Progress® Telerik® Fiddler® Classic for Windows, versions prior to v6.0.20262.10021, HTTP request smuggling is possible in the proxy… vulnerability
- CVE-2026-77803 In Progress® Telerik® Fiddler® Classic for Windows, versions prior to v6.0.20262.10021, front-end request desynchronization is possible in… vulnerability
- CVE-2026-63718 Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') response smuggling vulnerability in Apache HTTP Server via… vulnerability
- CVE-2026-103399 A flaw was found in SoupServer (libsoup). vulnerability
- CVE-2026-94194 Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') vulnerability in elixir-mint mint allows a malicious… vulnerability
- CVE-2026-100724 http4k (Maven package org.http4k:http4k-core) before 6.49.0.0, 5.42.0.0 and 4.51.0.0 uses substring (Contains) matching on the Host header… vulnerability
Referenced by CWE · can precede (1)
- CWE-1471 Insufficiently Controlled Parser Differential weakness
Referenced by CWE · has member (1)
- CWE-884 CWE Cross-section view