Executive brief
Libevent is a widely-used event notification library that provides HTTP parsing functionality. A flaw in how it parses HTTP chunked transfer encoding allows attackers to send maliciously-crafted requests that are interpreted differently by libevent than by upstream proxies, enabling request smuggling attacks. An attacker could exploit this to bypass authentication controls, poison cached content, or access restricted resources.
Technical details
The libevent evhttp HTTP parser in http.c contains multiple inconsistencies in handling chunked transfer encoding: it accepts bare line feeds (LF) as chunk terminators instead of requiring strict CRLF per RFC 9112, uses evhttp_find_header() which only selects the first header when duplicates exist, lacks proper validation of comma-separated Transfer-Encoding values, and does not detect valid "chunked" encoding when it appears at the end of a comma-separated list. When libevent is deployed behind a reverse proxy or firewall that normalizes or frames HTTP differently, an unauthenticated remote attacker can craft a request with ambiguous framing that causes request desynchronization. This allows the attacker to smuggle a second request within the first, potentially bypassing access controls or authentication. The vulnerability affects versions prior to 2.1.13 and 2.2.2-alpha; patches are available in those releases.
Affected products
- Libevent Libevent prior to 2.1.13 and 2.2.2-alpha
Timeline
- 2026-08-20: disclosed
- 2026-08-20: patched: Fixed in versions 2.1.13 and 2.2.2-alpha