
Analisi difensiva di CVE-2026-77680, un DoS da complessità algoritmica nell'HTTP Range di libsoup: analisi dettagliata del CVSS, mappatura della kill chain, indicazioni per il rilevamento e la mitigazione.
Valutazione: Gravità media · CVSS v3.1: 5.3 · Impatto principale: Disponibilità (esaurimento CPU / denial of service)
Questo repository documenta il comportamento tecnico, il rischio, la remediation e una mappatura Cyber Kill Chain per CVE-2026-77680, una vulnerabilità di complessità algoritmica nell'elaborazione dell'header HTTP Range di libsoup.
CVE-2026-77680 è una vulnerabilità di denial-of-service nella logica di coalescenza degli header HTTP Range in libsoup. Nelle versioni interessate, l'elaborazione di numerosi intervalli di byte ripetuti e soddisfacibili può innescare un lavoro quadratico. Il problema persiste dopo la precedente correzione di CVE-2025-32907, poiché il codice di coalescenza rimuoveva comunque gli elementi dell'array uno alla volta; ogni rimozione può spostare in memoria gli elementi rimanenti.
Un attaccante remoto e non autenticato può inviare una richiesta HTTP appositamente costruita a un'applicazione server che utilizza il percorso SoupServer interessato. Nelle condizioni vulnerabili, l'elaborazione della richiesta può consumare una quantità sproporzionata di tempo CPU e ritardare altre richieste. L'impatto segnalato riguarda solo la disponibilità; il problema non è descritto come corruzione della memoria o divulgazione di informazioni.
La correzione upstream sostituisce la rimozione ripetuta degli elementi con una compattazione in-place a tempo lineare e rifiuta gli header Range che richiedono più di 200 intervalli. Gli operatori dovrebbero installare l'aggiornamento di sicurezza appropriato del fornitore anziché affidarsi esclusivamente a una soluzione alternativa perimetrale.
| Campo | Dettagli |
|---|---|
| CVE | CVE-2026-77680 |
| Componente | GNOME libsoup (libreria HTTP) |
| Debolezza | CWE-407 — Complessità algoritmica inefficiente |
| Gravità | Media |
| CVSS v3.1 | 5.3 |
| Vettore CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
| Prerequisiti di attacco | Accesso di rete a un servizio interessato; nessuna autenticazione o interazione utente richiesta |
| Impatto principale | Esaurimento CPU e ridotta disponibilità del servizio |
| Problema correlato | CVE-2025-32907 |
| Correzione upstream | Merge request !550 di GNOME libsoup |
Le richieste HTTP byte-range consentono a un client di richiedere porzioni selezionate di una risorsa. Nel percorso di codice vulnerabile, libsoup unisce intervalli sovrapposti o duplicati. La rimozione di un elemento dal centro di un GArray contiguo può richiedere lo spostamento degli elementi rimanenti. Ripetere tale operazione durante l'elaborazione di molti intervalli può produrre un lavoro O(n²) anziché lineare.
Il percorso lato server segnalato include handle_partial_get() in libsoup/server/http1/soup-server-message-io-http1.c, con il parsing/coalescenza degli intervalli in soup_message_headers_get_ranges_internal() in libsoup/soup-message-headers.c. Il problema è rilevante quando un'applicazione utilizza il percorso server interessato e restituisce una risposta adeguata con un corpo non vuoto.
Il numero di intervalli può essere limitato dai limiti degli header di richiesta anziché da un limite sufficientemente basso sul conteggio degli intervalli. Di conseguenza, una singola richiesta può causare un'elaborazione eccessiva, e richieste ripetute possono amplificare l'impatto sulla disponibilità. L'impatto esatto dipende dalla versione distribuita, dai limiti delle richieste, dal comportamento dell'applicazione e dalla capacità del server.
Il punteggio CVSS v3.1 pubblicato è 5.3 (Media).
Un punteggio base Medio non significa che il problema possa essere ignorato: l'esposizione su Internet, le infrastrutture condivise e le richieste ripetute possono rendere la disponibilità del servizio operativamente importante.
Non dedurre la vulnerabilità dalla sola presenza di libsoup. Confermare la build specifica del pacchetto e se la correzione è stata applicata.
La Cyber Kill Chain di Lockheed Martin è un modello orientato all'intrusione. Questa mappatura adatta le sue fasi a uno scenario di denial-of-service; non ogni fase rappresenta un passo separato o necessario per questa vulnerabilità.
| Fase | Possibile attività in questo scenario | Opportunità difensive |
|---|---|---|
| 1. Ricognizione | Identificare un'applicazione raggiungibile e dedurre il suo stack HTTP o il suo comportamento. | Ridurre l'esposizione non necessaria; mantenere inventari di asset e software; evitare di divulgare informazioni di versione non necessarie. |
| 2. Armamento | Preparare una richiesta HTTP con un numero eccessivo di valori Range ripetuti o sovrapposti. | Applicare la patch alla libreria; validare e limitare il numero di range; applicare limiti sicuri di parsing delle richieste. |
| 3. Distribuzione | Inviare la richiesta appositamente costruita a un servizio esposto. | Utilizzare controlli di rete, protezioni del reverse proxy, limiti di connessione e controlli sulla frequenza delle richieste. |
| 4. Sfruttamento | Attivare un'elaborazione onerosa di coalescenza dei range in un percorso server vulnerabile. | Distribuire la correzione del fornitore/upstream; rifiutare i range eccessivi prima dell'elaborazione onerosa. |
| 5. Installazione | Normalmente non applicabile: si tratta di un difetto di esaurimento delle risorse che non installa di per sé malware. | Monitorare attività successive; non presumere che un'interruzione del servizio implichi la compromissione dell'host. |
| 6. Comando e controllo | Non necessario per il comportamento DoS di base. Una botnet o un controller remoto potrebbe essere utilizzato per coordinare traffico ripetuto, ma ciò non è intrinseco alla CVE. | Correlare il traffico tra le sorgenti; applicare protezioni DDoS upstream ove appropriato. |
| 7. Azioni sugli obiettivi | Degradare i tempi di risposta o negare agli utenti legittimi l'accesso al servizio. | Monitorare disponibilità e CPU; conservare i log; applicare procedure di risposta agli incidenti e di ripristino. |