Libevent: `evtag_unmarshal_header()` decodes a wire `uint32` length into a signed `int` return value.
21Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackcvss 8.7epss 0.4%
exploitation probability
0.4%top 68% of all CVEs
observed exploitation
nono source reports it
Libevent is an event notification library. Prior to 2.1.13 and 2.2.2-alpha, libevent has an incorrect integer conversion in event_tagging.c when evtag_unmarshal_header uses evtag_decode_int to decode an attacker-controlled uint32 payload length and returns it as a signed int. Values above INT_MAX become negative or truncated, and evtag_unmarshal_string can use the converted value in allocation sizing, producing a wrapped large allocation request and denial of service. This issue is fixed in versions 2.1.13 and 2.2.2-alpha.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Affected products
libevent · libeventReferences
https://github.com/libevent/libevent/commit/109c16499282959d70f56ec3baf4c8b1e6646bdahttps://github.com/libevent/libevent/commit/5e3c6ebe342b34c5a9bcf48e9a32ad6708b9c416https://github.com/libevent/libevent/releases/tag/release-2.1.13-stablehttps://github.com/libevent/libevent/releases/tag/release-2.2.2-alphahttps://github.com/libevent/libevent/security/advisories/GHSA-45c6-qx49-89m8