The vulnerability exists in the eventlet.wsgi.Input._chunked_read function, which is responsible for parsing chunked HTTP requests. Before the patch, when the end of a chunked message was reached (self.chunk_length == 0), the code only consumed a single line (rfile.readline()). This was insufficient to handle HTTP trailers, which can follow the final chunk. An attacker could include a second request in the trailer section. This second request would not be processed by Eventlet but would be passed to the backend server as part of the same connection, leading to HTTP request smuggling. The fix involves replacing rfile.readline() with a call to the new _discard_trailers method, which reads and discards all lines until it encounters the blank line that terminates the trailer section, thus preventing the smuggling of subsequent requests.
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| eventlet | pip | < 0.40.3 | 0.40.3 |
Ongoing coverage of React2Shell