Katalog CVE

CVE-2026-77680

ŚrednieCVSS 5.3
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.34%

Percentyl 27 - wyżej niż 27% wszystkich znanych CVE

Streszczenie

W bibliotece libsoup występuje podatność na atak typu „odmowa usługi” (CPU exhaustion) związana z przetwarzaniem nagłówka HTTP Range. Mimo poprawki CVE-2025-32907, scalanie wielu identycznych zakresów w pętli wykonuje operacje O(N²), co przy maksymalnym rozmiarze nagłówka (~100 KiB) pozwala na zablokowanie pętli zdarzeń serwera na około 90 ms na żądanie. Podatność jest osiągalna po stronie serwera bez uwierzytelniania.

Ocena ryzyka

Atakujący może wysyłać specjalnie skonstruowane żądania HTTP z wieloma zakresami, powodując przeciążenie procesora i blokowanie serwera, co prowadzi do niedostępności usługi dla innych użytkowników. Problem dotyczy wyłącznie dostępności, nie ma ryzyka naruszenia integralności danych ani ujawnienia informacji.

Rekomendacja

Zaleca się natychmiastowe zaktualizowanie biblioteki libsoup do wersji zawierającej poprawkę MR !550 (scaloną 2026-08-20), która zastępuje kosztowne usuwanie elementów kompaktowaniem w miejscu oraz odrzuca nagłówki Range z więcej niż 200 zakresami. Jeśli aktualizacja nie jest możliwa, należy rozważyć ograniczenie rozmiaru nagłówków żądań lub zastosowanie filtra blokującego takie żądania.

Inne podatności w libsoup

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS