Skip to main content

libsoup EUVDEUVD-2026-66111

| CVE-2026-77680 MEDIUM
Inefficient Algorithmic Complexity (CWE-407)
2026-08-25 redhat GHSA-9m98-w4qj-8f6q
5.3
CVSS 3.1 · Vendor: redhat
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify SoupServer-backed HTTP endpoint
  2. Delivery
    Craft Range header with ~25,000 repeated byte ranges
  3. Exploit
    Send unauthenticated HTTP GET
  4. Execution
    Trigger O(N²) coalescing loop in soup_message_headers_get_ranges_internal()
  5. Persist
    Block server event loop ~90 ms
  6. Impact
    Repeat to sustain denial of service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V2 - Validation and Business Logic Algorithmic complexity limits
Exploitation Conditions

Exploitation requires three concurrent conditions: (1) the target application uses libsoup's SoupServer API - libsoup client-only deployments are not in the vulnerable code path; (2) a SoupServer handler returns HTTP 200 with a non-empty body, which is the standard success response pattern and not a special configuration; and (3) the installed libsoup version contains the CVE-2025-32907 fix (commit 9bb92f7a) but not MR !550. No authentication is required - the CVSS vector PR:N confirms unauthenticated exploitation. The primary limiting factor is that only applications actively running SoupServer are affected; the impact per request is also bounded at approximately 90 ms of event-loop blockage, which is disruptive under a sustained stream but does not constitute instantaneous complete outage from a single packet.

Impact

The CVSS 3.1 score of 5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L) correctly characterises a network-reachable, unauthenticated, zero-complexity denial-of-service with limited per-request impact. The ~90 ms event-loop blockage per crafted request is modest individually but compounds under sustained load: a low-rate stream of such requests from a single client could render a SoupServer instance non-responsive without triggering volumetric rate limits. No CISA KEV listing exists and no public exploit code has been identified, lowering near-term exploitation probability; however, the attack primitive requires only a standard HTTP client and is trivially reproducible with curl or any HTTP library, so the practical barrier is very low despite the absence of a published PoC. SSVC signals suggest a 'Track' or 'Attend' posture: exploitation is not confirmed active, the technique is trivially automatable, and technical impact is partial availability. Importantly, the intelligence metadata tags 'Buffer Overflow' and 'Information Disclosure' conflict directly with the CVE description, which explicitly rules out memory corruption and information disclosure - those tags must be treated as erroneous and disregarded when assessing actual impact or scope.

Exploit ScenarioDerived

An unauthenticated attacker sends a single HTTP GET request to any endpoint served by a SoupServer instance with a Range header containing approximately 25,000 repetitions of 'bytes=0-0'. The server's handle_partial_get() function invokes the vulnerable O(N²) coalescing loop, consuming roughly 90 ms of CPU on a single core and blocking the event loop for that duration; repeating this at a sustained rate across concurrent connections can render the server unresponsive to legitimate traffic. No public exploit code has been identified, but the attack requires only a standard HTTP client.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 25, 2026

CPU exhaustion in libsoup's HTTP Range header processing affects any SoupServer deployment carrying the CVE-2025-32907 fix but not MR !550. Supplying a Range header with approximately 25,000 repeated satisfiable byte ranges triggers an O(N²) coalescing loop - each g_array_remove_index() call induces an O(N) memmove on GArray - blocking the server's event loop for roughly 90 ms per request from a single unauthenticated client. The description explicitly rules out memory corruption and information disclosure; this is a pure availability issue with no public exploit identified at time of analysis.

RemediationAI

The upstream fix is GNOME libsoup MR !550, merged 2026-08-20, available at https://gitlab.gnome.org/GNOME/libsoup/-/merge_requests/550; it replaces per-element g_array_remove_index() calls with O(N) in-place compaction and enforces a hard limit of 200 ranges per Range header request. Downstream consumers should upgrade to a libsoup release containing MR !550 or apply a vendor-backported package; monitor https://access.redhat.com/security/cve/CVE-2026-77680 for Red Hat Enterprise Linux 10 package availability. No specific patched package version number is confirmed in the available references beyond the upstream merge date. As a compensating control where patching is not immediately possible, deploying a reverse proxy or WAF in front of SoupServer instances to strip or cap the Range header (for example, rejecting requests with more than a small number of range values, or removing the header entirely for endpoints where partial content is unnecessary) eliminates the attack surface with no impact on standard clients. Network-level rate limiting on HTTP requests will reduce sustained attack effectiveness but will not eliminate the per-request CPU cost.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

libsoup is the GNOME project's HTTP client/server library, embedded across GNOME desktop applications, Red Hat Enterprise Linux 10 (CPE: cpe:2.3:a:red_hat:red_hat_enterprise_linux_10:*:*:*:*:*:*:*:*), and server applications built on the SoupServer API. The root cause is CWE-407 (Inefficient Algorithmic Complexity): the range-coalescing loop in soup_message_headers_get_ranges_internal() (libsoup/soup-message-headers.c), as left by commit 9bb92f7a (the CVE-2025-32907 fix), calls g_array_remove_index() per coalesced element. GArray is a contiguous heap array; each mid-array removal shifts all subsequent elements via memmove, making each call O(N) and the full coalescing pass O(N²). The vulnerable server path is triggered via handle_partial_get() in libsoup/server/http1/soup-server-message-io-http1.c whenever a SoupServer handler returns HTTP 200 with a non-empty body - a common, default response pattern. The ~100 KiB HTTP header size limit permits roughly 25,000 'bytes=0-0' entries per request, producing approximately 90 ms of single-core CPU blockage that stalls the event loop for that duration. This is a second-order issue introduced by the incomplete algorithmic fix of CVE-2025-32907, which corrected merge correctness but left the per-element removal cost unaddressed.

Know when Red Hat Enterprise Linux 10 gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (redhat) PRIMARY 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
vuln.today AI 5.3 MEDIUM

Network-reachable unauthenticated path with no auth barrier; no confidentiality or integrity impact; availability is limited to event-loop stall rather than complete denial.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
SUSE MEDIUM
Red Hat 5.3 MEDIUM

Primary rating from Vendor (redhat).

CVSS VectorVendor: redhat

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
Low

DescriptionCVE.org

An algorithmic complexity flaw exists in libsoup's HTTP Range header processing that persists after the CVE-2025-32907 fix.

CVE-2025-32907 addressed memory amplification when a client repeated the same range many times in a single Range header. Commit 9bb92f7a corrected merge correctness in soup_message_headers_get_ranges_internal() in libsoup/soup-message-headers.c, but the coalescing loop still removes merged ranges using g_array_remove_index() for each coalesced element. Because GArray is contiguous, each mid-array removal performs an O(N) memmove. When many identical satisfiable ranges are supplied (for example bytes=0-0 repeated thousands of times), the loop performs O(N²) work coalescing them into a single range.

The vulnerable path is reachable server-side from handle_partial_get() in libsoup/server/http1/soup-server-message-io-http1.c when a SoupServer handler returns HTTP 200 with a non-empty body. No authentication is required. The number of ranges is bounded only by the maximum request header size (~100 KiB), allowing roughly 25,000 ranges per request. Reporter measurements on libsoup HEAD containing the CVE-2025-32907 fix show ~90 ms single-core CPU per such request at the wire maximum, blocking the server's event loop for that duration.

This is a CPU exhaustion / availability issue only. No memory corruption or information disclosure occurs.

Affected: libsoup versions containing the CVE-2025-32907 fix but not merge request !550. Fixed upstream: MR !550 merged 2026-08-20, replacing per-element removal with O(N) in-place compaction and rejecting Range headers requesting more than 200 ranges. Upstream report: https://gitlab.gnome.org/GNOME/libsoup/-/issues/538 Related: CVE-2025-32907

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Medium
GNOME HTTP library used widely across Linux desktops and GNOME-based server apps
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Affected Products (CPE)CVE.org

cpe:2.3:a:red_hat:red_hat_enterprise_linux_10:*:*:*:*:*:*:*:*
CVE-2026-18663 MEDIUM
5.9 Aug 12

Heap corruption via double-free in 389-ds-base's LDAP control parsing allows an unauthenticated remote attacker to crash

CVE-2026-4631 CRITICAL POC
9.8 Apr 07

Remote code execution in Cockpit's web interface allows unauthenticated attackers to execute arbitrary commands on the h

CVE-2026-4480 CRITICAL POC
9.0 May 26

Remote code execution in Samba's printing subsystem allows remote attackers to inject arbitrary shell commands via craft

CVE-2026-101258 HIGH POC
7.8 Oct 06

Ghostscript can execute arbitrary shell commands with the privileges of its process when it renders a crafted PostScript

CVE-2026-18922 CRITICAL
9.8 Sep 07

Authentication bypass in 389 Directory Server (shipped as Red Hat Directory Server 11-13 and within RHEL 6-10) lets remo

CVE-2026-14544 CRITICAL
9.8 Jul 03

Remote code execution and privilege escalation in HPLIP (HP Linux Imaging and Printing) affects the hpcups print filter

CVE-2026-76578 CRITICAL
9.8 Sep 07

Unauthenticated privilege escalation in FreeIPA (Red Hat Identity Management) allows a remote attacker to gain genuine a

CVE-2026-102560 CRITICAL
9.8 Sep 29

A heap buffer overflow exists in libsoup's WebSocket permessage-deflate compression path: when a very large outbound mes

CVE-2026-5121 HIGH
7.5 Mar 30

Remote code execution in libarchive on 32-bit systems allows unauthenticated attackers to execute arbitrary code via spe

CVE-2026-107935 CRITICAL
9.3 Oct 09

Unauthenticated path traversal in gvproxy, the network forwarder shipped in the gvisor-tap-vsock package (used by Podman

CVE-2026-28369 CRITICAL
9.1 Mar 27

HTTP request smuggling in Undertow (the embedded web server underpinning JBoss EAP, Red Hat Data Grid, and Apache Camel

CVE-2026-28368 CRITICAL
9.1 Mar 27

HTTP request smuggling in Red Hat Undertow allows remote unauthenticated attackers to bypass front-end security controls

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Micro 5.3 Affected
SUSE Linux Enterprise Micro 5.4 Affected
SUSE Linux Enterprise Micro 5.5 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy