Fedora Account System
Red Hat Associate
Red Hat Customer
A heap buffer overflow was found in libsoup's WebSocket incoming receive buffer handling. Incoming frames are accumulated in a GByteArray. With max-incoming-payload-size set to 0 (unlimited), a peer could declare a multi-GiB payload and stream it until the buffer length wrapped in g_byte_array_set_size() while the read still targeted the original offset, writing past the allocation. Fixed by rejecting payload lengths above what the receive buffer can represent as soon as the frame header is parsed, before buffering the payload (commit 381a474f, libsoup 3.7.3). Such frames are closed as SOUP_WEBSOCKET_CLOSE_TOO_BIG. References: https://gitlab.gnome.org/GNOME/libsoup/-/work_items/554 (Bug 6) https://gitlab.gnome.org/GNOME/libsoup/-/commit/381a474f