CVE-2026-77680
Təsvir
libsoup-un HTTP Range başlığının emalında, CVE-2025-32907 düzəlişindən sonra da davam edən alqoritmik mürəkkəblik çatışmazlığı mövcuddur. CVE-2025-32907, müştəri tərəfindən bir Range başlığında eyni diapazonun dəfələrlə təkrarlanması zamanı yaranan yaddaş artımı problemini həll etmişdi. 9bb92f7a commit-i libsoup/soup-message-headers.c faylındakı soup_message_headers_get_ranges_internal() funksiyasında birləşdirmə düzgünlüyünü təmin etdi, lakin birləşdirmə dövrü hələ də hər bir birləşdirilmiş element üçün g_array_remove_index() vasitəsilə birləşmiş diapazonları silir. GArray ardıcıl olduğu üçün massivin ortasındakı hər bir silmə əməliyyatı O(N) memmove yerinə yetirir. Bir çox eyni və qarşılanan diapazonlar təqdim edildikdə (məsələn, minlərlə dəfə təkrarlanan bytes=0-0), dövr onları tək bir diapazona birləşdirmək üçün O(N²) iş yükü yaradır. Həssas yol, SoupServer handler-i boş olmayan gövdə ilə HTTP 200 qaytardıqda, libsoup/server/http1/soup-server-message-io-http1.c faylındakı handle_partial_get() vasitəsilə server tərəfdən əlçatandır. Heç bir autentifikasiya tələb olunmur. Diapazonların sayı yalnız maksimum sorğu başlığı ölçümü (~100 KiB) ilə məhdudlaşır ki, bu da hər sorğu üçün təxminən 25,000 diapazona imkan verir. CVE-2025-32907 düzəlişini ehtiva edən libsoup HEAD versiyasındakı ölçümlər göstərir ki, belə bir sorğu maksimal həcmdə olduqda, tək nüvəli CPU-da ~90 ms vaxt aparır və həmin müddət ərzində serverin hadisə dövrünü (event loop) bloklayır. Bu, yalnız CPU tükənməsi / əlçatanlıq problemidir. Yaddaş korrupsiyası və ya məlumat sızması baş vermir. Təsirə məruz qalanlar: CVE-2025-32907 düzəlişini ehtiva edən, lakin merge request !550-ni ehtiva etməyən libsoup versiyaları. Yuxarı axında (upstream) düzəldildi: 2026-08-20 tarixində birləşdirilən MR !550, element üzrə silməni O(N) yerində sıxılma (in-place compaction) ilə əvəz etdi və 200-dən çox diapazon tələb edən Range başlıqlarını rədd etdi. Yuxarı axın hesabatı: https://gitlab.gnome.org/GNOME/libsoup/-/issues/538 Əlaqədar: CVE-2025-32907
Necə düzəltmək olar
Mənbələrdə bu zəiflik üçün düzəldilmiş versiya və ya yamaq keçidi yoxdur.
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Red Hat Red Hat Enterprise Linux 10 | Aralıq göstərilməyib | — |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.