
Defensive Analyse von CVE-2026-77680, einem DoS-Angriff durch algorithmische Komplexität bei libsoup HTTP Range: CVSS-Aufschlüsselung, Kill-Chain-Zuordnung, Erkennungs- und Behebungsempfehlungen.
Bewertung: Mittlere Schwere · CVSS v3.1: 5.3 · Primäre Auswirkung: Verfügbarkeit (CPU-Erschöpfung / Denial of Service)
Dieses Repository dokumentiert das technische Verhalten, das Risiko, die Behebung und eine Cyber-Kill-Chain-Zuordnung für CVE-2026-77680, einen Fehler algorithmischer Komplexität in der Verarbeitung des HTTP-Range-Headers in libsoup.
CVE-2026-77680 ist eine Denial-of-Service-Schwachstelle in der Logik zur Zusammenführung von HTTP-Ranges in libsoup. In betroffenen Versionen kann die Verarbeitung vieler wiederholter, erfüllbarer Byte-Ranges quadratischen Aufwand auslösen. Das Problem besteht auch nach der früheren Korrektur von CVE-2025-32907 fort, da der Code zur Zusammenführung Array-Elemente weiterhin einzeln entfernte; jede Entfernung kann die verbleibenden Elemente im Speicher verschieben.
Ein entfernter, nicht authentifizierter Angreifer kann eine manipulierte HTTP-Anfrage an eine Serveranwendung senden, die den betroffenen SoupServer-Pfad verwendet. Unter den anfälligen Bedingungen kann die Verarbeitung der Anfrage unverhältnismäßig viel CPU-Zeit verbrauchen und andere Anfragen verzögern. Die gemeldete Auswirkung betrifft ausschließlich die Verfügbarkeit; dieses Problem wird nicht als Speicherbeschädigung oder Offenlegung von Informationen beschrieben.
Die Upstream-Korrektur ersetzt das wiederholte Entfernen von Elementen durch eine lineare In-Place-Kompaktierung und lehnt Range-Header ab, die mehr als 200 Ranges anfordern. Betreiber sollten das entsprechende Sicherheitsupdate des Herstellers installieren, anstatt sich allein auf eine Perimeter-Workaround-Lösung zu verlassen.
| Feld | Details |
|---|---|
| CVE | CVE-2026-77680 |
| Komponente | GNOME libsoup (HTTP-Bibliothek) |
| Schwäche | CWE-407 — Ineffiziente algorithmische Komplexität |
| Schweregrad | Mittel |
| CVSS v3.1 | 5.3 |
| CVSS-Vektor | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
| Angriffsvoraussetzungen | Netzwerkzugriff auf einen betroffenen Dienst; keine Authentifizierung oder Benutzerinteraktion erforderlich |
| Hauptauswirkung | CPU-Erschöpfung und verringerte Dienstverfügbarkeit |
| Verwandtes Problem | CVE-2025-32907 |
| Upstream-Korrektur | GNOME libsoup Merge Request !550 |
HTTP-Byte-Range-Anfragen ermöglichen es einem Client, ausgewählte Teile einer Ressource anzufordern. Im anfälligen Codepfad führt libsoup überlappende oder doppelte Ranges zusammen. Das Entfernen eines Elements aus der Mitte eines zusammenhängenden GArray kann das Verschieben der verbleibenden Elemente erfordern. Die Wiederholung dieser Operation bei der Verarbeitung vieler Ranges kann O(n²) Aufwand statt linearem Aufwand erzeugen.
Der gemeldete serverseitige Pfad umfasst handle_partial_get() in libsoup/server/http1/soup-server-message-io-http1.c, mit Range-Parsing/Zusammenführung in soup_message_headers_get_ranges_internal() in libsoup/soup-message-headers.c. Das Problem ist relevant, wenn eine Anwendung den betroffenen Serverpfad verwendet und eine geeignete Antwort mit nicht leerem Body zurückgibt.
Die Anzahl der Ranges kann durch Limits für Anfrage-Header begrenzt werden, jedoch nicht durch eine ausreichend niedrige Obergrenze für die Range-Anzahl. Folglich kann eine einzelne Anfrage übermäßige Verarbeitung verursachen, und wiederholte Anfragen können die Auswirkung auf die Verfügbarkeit verstärken. Die genaue Auswirkung hängt von der eingesetzten Version, den Anfrage-Limits, dem Anwendungsverhalten und der Serverkapazität ab.
Der veröffentlichte CVSS-v3.1-Score ist 5.3 (Mittel).
Ein mittlerer Basis-Score bedeutet nicht, dass das Problem ignoriert werden kann: Internet-Exposition, gemeinsam genutzte Infrastruktur und wiederholte Anfragen können die Dienstverfügbarkeit betrieblich bedeutsam machen.
Leiten Sie eine Schwachstelle nicht allein aus dem Vorhandensein von libsoup ab. Bestätigen Sie den konkreten Paket-Build und ob der Fix angewendet wurde.
Die Cyber Kill Chain von Lockheed Martin ist ein eindringlingsorientiertes Modell. Diese Zuordnung passt ihre Phasen an ein Denial-of-Service-Szenario an; nicht jede Phase stellt einen separaten oder notwendigen Schritt für diese Schwachstelle dar.
| Phase | Mögliche Aktivität in diesem Szenario | Verteidigungsmöglichkeiten |
|---|---|---|
| 1. Aufklärung (Reconnaissance) | Eine erreichbare Anwendung identifizieren und auf ihren HTTP-Stack oder ihr Verhalten schließen. | Unnötige Exposition reduzieren; Asset- und Software-Inventare pflegen; unnötige Versionsinformationen nicht preisgeben. |
| 2. Waffenisierung (Weaponization) | Eine HTTP-Anfrage mit einer übermäßigen Anzahl wiederholter oder überlappender Range-Werte vorbereiten. | Die Bibliothek patchen; Range-Anzahlen validieren und begrenzen; sichere Grenzwerte für die Anfrageverarbeitung anwenden. |
| 3. Zustellung (Delivery) | Die präparierte Anfrage an einen exponierten Dienst senden. | Netzwerkkontrollen, Schutzmaßnahmen im Reverse-Proxy, Verbindungslimits und Ratenbegrenzungen für Anfragen einsetzen. |
| 4. Ausnutzung (Exploitation) | Aufwändige Range-Zusammenführungsarbeit in einem verwundbaren Serverpfad auslösen. | Den Anbieter-/Upstream-Fix bereitstellen; übermäßige Ranges vor der aufwändigen Verarbeitung ablehnen. |
| 5. Installation | Normalerweise nicht anwendbar: Dies ist eine Ressourcenerschöpfungsschwachstelle und installiert selbst keine Malware. | Auf Folgeaktivitäten achten; gehen Sie nicht davon aus, dass eine Dienststörung eine Kompromittierung des Hosts bedeutet. |
| 6. Command and Control | Für das grundlegende DoS-Verhalten nicht erforderlich. Ein Botnetz oder eine Fernsteuerung könnte zur Koordination wiederholten Datenverkehrs genutzt werden, was jedoch nicht dem Wesen der CVE entspricht. | Datenverkehr über verschiedene Quellen korrelieren; gegebenenfalls vorgelagerte DDoS-Schutzmaßnahmen anwenden. |
| 7. Aktionen auf Ziele (Actions on Objectives) | Antwortzeiten verschlechtern oder legitimen Benutzern den Zugriff auf den Dienst verweigern. | Verfügbarkeit und CPU überwachen; Protokolle aufbewahren; Verfahren zur Vorfallreaktion und Wiederherstellung anwenden. |