Summary
Libsoup is an HTTP library implementation in C. It was originally part of a SOAP (Simple Object Access Protocol) implementation called Soup, but the SOAP and non-SOAP parts have now been split into separate packages. libsoup uses the Glib main loop and is designed to work well with GTK applications. This enables GNOME applications to access HTTP servers on the network in a completely asynchronous fashion, very similar to the Gtk+ programming model (a synchronous operation mode is also supported for those who want it), but the SOAP parts were removed long ago.
Security Fix(es):
* SoupWebsocketExtensionDeflate: libsoup: libsoup: WebSocket permessage-deflate Unbounded Decompression Remote Denial of Service (CVE-2026-15709)
* libsoup: SoupWebsocketConnection: libsoup: WebSocket remote denial of service via oversized control frame protocol violation (CVE-2026-15711)
* libsoup: libsoup: Heap use-after-free in libsoup HTTP/2 client on_data_read() via GOAWAY during body upload (CVE-2026-85197)
* libsoup: libsoup: Heap buffer overflow via uninitialized length in data-URI base64 decoding (CVE-2026-102555)
* libsoup: libsoup: Heap buffer overflow from WebSocket Pong signal type confusion (CVE-2026-102556)
* libsoup: libsoup: Heap buffer overflow during WebSocket message reassembly (CVE-2026-102557)
* libsoup: libsoup: Heap buffer overflow during WebSocket receive-buffer growth (CVE-2026-102558)
* libsoup: libsoup: Heap buffer overflow during WebSocket client-frame masking (CVE-2026-102559)
* libsoup: libsoup: Heap buffer overflow during outgoing permessage-deflate buffer growth (CVE-2026-102560)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
Fixed packages 17
| Release | Package | Fixed in |
|---|---|---|
| Rocky Linux · 10 | libsoup3 | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3 | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3 | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3 | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3-debuginfo | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3-debuginfo | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3-debuginfo | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3-debuginfo | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3-debugsource | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3-debugsource | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3-debugsource | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3-debugsource | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3-devel | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3-devel | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3-devel | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3-devel | 0:3.6.6-1.el10_3.9 |
| Rocky Linux · 10 | libsoup3-doc | 0:3.6.6-1.el10_3.9 |
Vulnerabilities 9
-
High 8.6
Libsoup: libsoup: heap buffer overflow from websocket pong signal type confusion
A flaw was found in libsoup. When handling an incoming WebSocket Pong frame, SoupWebsocketConnection emitted the ::pong signal with a GByteArray pointer even though the signal is declared to pass a GBytes. Applications connecting a handler that follows the do…
-
High 8.6
Libsoup: libsoup: heap buffer overflow during websocket message reassembly
A flaw was found in libsoup. When reassembling fragmented WebSocket messages into a GByteArray, libsoup did not adequately cap total message size against the limits of the underlying buffer type. A remote peer could send fragments that caused size truncation …
-
High 8.6
Libsoup: libsoup: heap buffer overflow during websocket receive-buffer growth
A flaw was found in libsoup. When max-incoming-payload-size is unlimited (0), SoupWebsocketConnection could grow its incoming GByteArray based on an attacker-controlled frame length until the length wrapped, causing a heap buffer overflow while reading frame …
-
High 8.6
Libsoup: libsoup: heap buffer overflow during websocket client-frame masking
A flaw was found in libsoup. When constructing a masked WebSocket client frame for a very large outgoing payload, size values passed to GByteArray allocation APIs could be truncated while the masking routine still used the full length, causing a heap buffer o…
-
High 8.6
Libsoup: libsoup: heap buffer overflow during outgoing permessage-deflate buffer growth
A flaw was found in libsoup. When the permessage-deflate WebSocket extension compresses a very large outgoing message, truncated size calculations used for GByteArray growth could wrap, causing zlib to write past the allocated buffer and resulting in a heap b…
-
High 8.2
Libsoup: libsoup: heap buffer overflow via uninitialized length in data-uri base64 decoding
A flaw was found in libsoup. The soup_uri_decode_data_uri() function incorrectly treated base64 data-URI payloads as NUL-terminated strings when calling g_base64_decode_inplace(). If the percent-decoded payload contained embedded NUL bytes, the decoded length…
-
High 7.6
Libsoup: libsoup: heap use-after-free in libsoup http/2 client on_data_read() via goaway during body upload
A flaw was found in libsoup. A malicious HTTP/2 server or a Man-in-the-Middle (MITM) attacker can exploit a heap use-after-free vulnerability in the HTTP/2 client implementation. This occurs when a GNOME application uploads a file using HTTP/2, and the server…
-
High 7.5
Soupwebsocketextensiondeflate: libsoup: libsoup: websocket permessage-deflate unbounded decompression remote denial of service
A flaw was found in libsoup's WebSocket implementation when using the permessage-deflate extension. The extension's decompression loop (inflate()) processes data in chunks without enforcing an upper boundary limit on the output buffer size. While libsoup limi…
-
High 7.5
Libsoup: soupwebsocketconnection: libsoup: websocket remote denial of service via oversized control frame protocol violation
A vulnerability was found in libsoup's WebSocket frame parsing implementation. The library fails to validate length rules specified in RFC 6455 §5.5, which mandates that all WebSocket control frames (e.g., PING, PONG, CLOSE) contain a payload of 125 bytes or …
References
-
report
https://bugzilla.redhat.com/show_bug.cgi?id=2499924
-
report
https://bugzilla.redhat.com/show_bug.cgi?id=2499922
-
report
https://bugzilla.redhat.com/show_bug.cgi?id=2528425
-
report
https://bugzilla.redhat.com/show_bug.cgi?id=2543285
-
report
https://bugzilla.redhat.com/show_bug.cgi?id=2543296
-
report
https://bugzilla.redhat.com/show_bug.cgi?id=2543229
-
report
https://bugzilla.redhat.com/show_bug.cgi?id=2543274
-
report
https://bugzilla.redhat.com/show_bug.cgi?id=2543224
-
report
https://bugzilla.redhat.com/show_bug.cgi?id=2543231
-
advisory
https://access.redhat.com/errata/RHSA-2026:98560