---
id: CVE-2026-12549
title: >-
  Libsoup: incomplete fix for cve-2026-2443: range suffix overflow in libsoup
  soupserver
summary: >-
  The fix for CVE-2026-2443 was regressed by a subsequent rework commit that
  replaced specific overflow checks with a general signed comparison. When a
  client sends a Range request with a suffix length exceeding the content size,
  the resul…
severity: medium
cvss: 4.8
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L'
cvssSource: cna
cwe:
  - CWE-805
vendor: Red Hat
product: libsoup3
affected:
  - libsoup3 (all versions)
  - libsoup
  - libsoup
  - libsoup (all versions)
  - libsoup (all versions)
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-06-23T14:05:45.451175Z'
published: '2026-06-22'
updated: '2026-11-05'
sourceUpdated: '2026-11-05T17:02:49.097Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-12549'
references:
  - url: 'https://access.redhat.com/security/cve/CVE-2026-12549'
  - url: 'https://access.redhat.com/security/cve/cve-2026-0716'
    label: cve-2026-0716
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2489999'
    label: RHBZ#2489999
  - url: 'https://gitlab.gnome.org/GNOME/libsoup/-/work_items/516'
tags:
  - cve.org
epss: 0.00357
epssPercentile: 0.29546
ingestedAt: '2026-11-05T22:38:31.416Z'
---

## Overview

The fix for CVE-2026-2443 was regressed by a subsequent rework commit that replaced specific overflow checks with a general signed comparison. When a client sends a Range request with a suffix length exceeding the content size, the resulting negative start value is not properly clamped, leading to malformed HTTP 206 responses and log flooding.

## Affected

- `libsoup3 (all versions)`
- `libsoup`
- `libsoup`
- `libsoup (all versions)`
- `libsoup (all versions)`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

### Workarounds

To mitigate this issue, applications utilizing libsoup's WebSocket support should ensure that the `max_incoming_payload_size` is explicitly set to a non-zero value. This prevents the library from processing WebSocket frames with an unset or zero maximum payload size, which can lead to out-of-bounds reads. Consult application-specific documentation for configuring libsoup parameters.
