Description
Libevent is an event notification library. Prior to 2.1.13 and 2.2.2-alpha, libevent processes chunked HTTP trailers in http.c through evhttp_read_trailer and merges them into request headers. The fix introduces evhttp_parse_headers_impl_ and a temporary trailer header list. An unauthenticated remote attacker can place security-sensitive fields in trailers so that an upstream proxy and the libevent application interpret different effective headers, enabling header smuggling, authorization bypass, proxy-header spoofing, or cache poisoning. The fix parses trailers into a temporary header list and discards them instead of merging them into req->input_headers. This issue is fixed in versions 2.1.13 and 2.2.2-alpha.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
libevent libevent
< 2.1.13affected>= 2.2.0-alpha, < 2.2.2-alphaaffected
References
- https://github.com/libevent/libevent/security/advisories/GHSA-2gmv-p5m7-98p6 ↗
- https://github.com/libevent/libevent/commit/87e8e44fa774e9677b089b1a5114ee68aefa1636 ↗
- https://github.com/libevent/libevent/commit/b847071141b3827900d536594ec9045eb0a4c485 ↗
- https://github.com/libevent/libevent/releases/tag/release-2.1.13-stable ↗
- https://github.com/libevent/libevent/releases/tag/release-2.2.2-alpha ↗