Executive brief
libsoup is a popular networking library used by many Linux applications to handle web communications. A flaw was found in how it processes complex web messages containing multiple parts (multipart HTTP messages). If an application using this library receives a specially crafted, extremely large message, it could cause the application to crash or potentially allow an attacker to view sensitive information stored in the computer's memory.
Technical details
A heap out-of-bounds read (CWE-125) exists in libsoup's multipart body parser due to an integer truncation vulnerability. In `soup_multipart_new_from_message()`, the length of a MIME part's header section is calculated as a 64-bit `ptrdiff_t`. When this value exceeds `INT_MAX` (approx. 2 GiB), it is truncated to a 32-bit signed `int` when passed to `soup_headers_parse()`, resulting in a negative value. This negative integer is subsequently cast to a large `size_t` when passed to `memchr()`, triggering a massive out-of-bounds read. An attacker can exploit this by sending a crafted multipart HTTP message to a libsoup-based client or server to cause a denial of service (crash) or potentially disclose heap memory contents.
Affected products
- Red Hat libsoup3 Red Hat Enterprise Linux 10 (affected)
- GNOME libsoup 3.x versions prior to fix
Timeline
- 2026-01-28: disclosed: Reported via YesWeHack program
- 2026-07-21: advisory: NVD and Red Hat published advisory details