libsoup: Fix of 6 CVEs
- CVE-2026-102555: decode base64 data: URI content with g_base64_decode_step() over the real buffer length in soup_request_data_send(), so a percent-encoded NUL no longer truncates the payload, leaks the decode buffer and raises a GLib-CRITICAL - CVE-2026-102556: emit the WebSocket ::pong signal with a GBytes, as the signal and the public header have always declared, instead of a GByteArray, removing the type confusion a crafted Pong frame could turn into heap corruption in any handler that honours the documented API - CVE-2026-102557: cap a reassembled WebSocket message at what a GByteArray can hold before each fragment is appended in process_contents(), so a run of fragments can no longer truncate the guint size passed to g_byte_array_sized_new()/g_byte_array_append() while the full length is used - CVE-2026-102558: reject an incoming frame whose declared payload exceeds what the receive buffer can represent as soon as the header is parsed, so the incoming GByteArray can no longer grow until g_byte_array_set_size() wraps and the read writes past the allocation - CVE-2026-102559: reject an outgoing payload above MAX_OUTGOING_PAYLOAD_SIZE in send_message(), both before and after extensions have processed it, so a masked client frame can no longer be built in a truncated GByteArray while xor_with_mask() writes the full payload length past the allocation - CVE-2026-102560: refuse an outgoing permessage-deflate payload whose deflateBound() exceeds G_MAXUINT and bound every incre
- Products
- libsoup, libsoup-devel, libsoup-doc
- Affected versions
- Not specified
- Fixed versions
- 2.72.0-10.el9_2.3.tuxcare.els13
- CVEs
- CVE-2026-102555, CVE-2026-102556, CVE-2026-102557, CVE-2026-102558, CVE-2026-102559, CVE-2026-102560
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 1 Nov 2026, 10:48 UTC · Revision 1
Source evidence
- CVE-2026-102555: decode base64 data: URI content with g_base64_decode_step() over the real buffer length in soup_request_data_send(), so a percent-encoded NUL no longer truncates the payload, leaks the decode buffer and raises a GLib-CRITICAL - CVE-2026-102556: emit the WebSocket ::pong signal with a GBytes, as the signal and the public header have always declared, instead of a GByteArray, removing the type confusion a crafted Pong frame could turn into heap corruption in any handler that honours the documented API - CVE-2026-102557: cap a reassembled WebSocket message at what a GByteArray can hold before each fragment is appended in process_contents(), so a run of fragments can no longer truncate the guint size passed to g_byte_array_sized_new()/g_byte_array_append() while the full length is used - CVE-2026-102558: reject an incoming frame whose declared payload exceeds what the receive buffer can represent as soon as the header is parsed, so the incoming GByteArray can no longer grow until g_byte_array_set_size() wraps and the read writes past the allocation - CVE-2026-102559: reject an outgoing payload above MAX_OUTGOING_PAYLOAD_SIZE in send_message(), both before and after extensions have processed it, so a masked client frame can no longer be built in a truncated GByteArray while xor_with_mask() writes the full payload length past the allocation - CVE-2026-102560: refuse an outgoing permessage-deflate payload whose deflateBound() exceeds G_MAXUINT and bound every incre
osv:CLSA-2026-1792599160
libsoup
Fixed versions: 2.72.0-10.el9_2.3.tuxcare.els13
libsoup-devel
Fixed versions: 2.72.0-10.el9_2.3.tuxcare.els13
libsoup-doc
Fixed versions: 2.72.0-10.el9_2.3.tuxcare.els13
Complete source record
{
"id": "38ee9816ea1947a9216f952f3ff14422da5c21eb03678c2952683f71741096c0",
"url": "https://osv.dev/vulnerability/CLSA-2026-1792599160",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "libsoup: Fix of 6 CVEs",
"summary": "- CVE-2026-102555: decode base64 data: URI content with g_base64_decode_step() over the real buffer length in soup_request_data_send(), so a percent-encoded NUL no longer truncates the payload, leaks the decode buffer and raises a GLib-CRITICAL - CVE-2026-102556: emit the WebSocket ::pong signal with a GBytes, as the signal and the public header have always declared, instead of a GByteArray, removing the type confusion a crafted Pong frame could turn into heap corruption in any handler that honours the documented API - CVE-2026-102557: cap a reassembled WebSocket message at what a GByteArray can hold before each fragment is appended in process_contents(), so a run of fragments can no longer truncate the guint size passed to g_byte_array_sized_new()/g_byte_array_append() while the full length is used - CVE-2026-102558: reject an incoming frame whose declared payload exceeds what the receive buffer can represent as soon as the header is parsed, so the incoming GByteArray can no longer grow until g_byte_array_set_size() wraps and the read writes past the allocation - CVE-2026-102559: reject an outgoing payload above MAX_OUTGOING_PAYLOAD_SIZE in send_message(), both before and after extensions have processed it, so a masked client frame can no longer be built in a truncated GByteArray while xor_with_mask() writes the full payload length past the allocation - CVE-2026-102560: refuse an outgoing permessage-deflate payload whose deflateBound() exceeds G_MAXUINT and bound every incre",
"evidence": "osv:CLSA-2026-1792599160",
"products": [
{
"name": {
"value": "libsoup",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.72.0-10.el9_2.3.tuxcare.els13",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libsoup-devel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.72.0-10.el9_2.3.tuxcare.els13",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libsoup-doc",
"evidence": "/affected/2/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.72.0-10.el9_2.3.tuxcare.els13",
"evidence": "/affected/2/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CLSA-2026-1792599160",
"aliases": [
"CLSA-2026-1792599160"
],
"affected": [
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.72.0-10.el9_2.3.tuxcare.els13"
}
]
}
],
"package": {
"name": "libsoup",
"purl": "pkg:rpm/tuxcare/libsoup?distro=almalinux-9.2",
"ecosystem": "TuxCare:AlmaLinux:9.2"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.2esu/CLSA-2026-1792599160.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.72.0-10.el9_2.3.tuxcare.els13"
}
]
}
],
"package": {
"name": "libsoup-devel",
"purl": "pkg:rpm/tuxcare/libsoup-devel?distro=almalinux-9.2",
"ecosystem": "TuxCare:AlmaLinux:9.2"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.2esu/CLSA-2026-1792599160.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.72.0-10.el9_2.3.tuxcare.els13"
}
]
}
],
"package": {
"name": "libsoup-doc",
"purl": "pkg:rpm/tuxcare/libsoup-doc?distro=almalinux-9.2",
"ecosystem": "TuxCare:AlmaLinux:9.2"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.2esu/CLSA-2026-1792599160.json"
}
}
],
"modified": "2026-10-26T09:31:01.469866188Z",
"provider": "osv",
"upstream": [
"CVE-2026-102555",
"CVE-2026-102556",
"CVE-2026-102557",
"CVE-2026-102558",
"CVE-2026-102559",
"CVE-2026-102560"
],
"references": [
"https://errata.tuxcare.com/els_os/almalinux9.2esu/CLSA-2026-1792599160.html",
"https://nvd.nist.gov/vuln/detail/CVE-2026-102555",
"https://nvd.nist.gov/vuln/detail/CVE-2026-102556",
"https://nvd.nist.gov/vuln/detail/CVE-2026-102557",
"https://nvd.nist.gov/vuln/detail/CVE-2026-102558",
"https://nvd.nist.gov/vuln/detail/CVE-2026-102559",
"https://nvd.nist.gov/vuln/detail/CVE-2026-102560"
]
},
"related_cves": [
{
"value": "CVE-2026-102555",
"evidence": "/upstream"
},
{
"value": "CVE-2026-102556",
"evidence": "/upstream"
},
{
"value": "CVE-2026-102557",
"evidence": "/upstream"
},
{
"value": "CVE-2026-102558",
"evidence": "/upstream"
},
{
"value": "CVE-2026-102559",
"evidence": "/upstream"
},
{
"value": "CVE-2026-102560",
"evidence": "/upstream"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 447389,
"published_at": "2026-10-21T16:12:56+00:00"
}