CVE-2026-77680 in Red Hat
Сводка
по VulDB • 25.08.2026
В обработке заголовка HTTP Range в библиотеке libsoup существует уязвимость, связанная с алгоритмической сложностью (algorithmic complexity flaw), которая сохраняется после исправления CVE-2025-32907.
CVE-2025-32907 устранял проблему амплификации памяти при многократном повторении клиентом одного и того же диапазона в одном заголовке Range. Коммит 9bb92f7a исправил корректность слияния (merge correctness) в функции soup_message_headers_get_ranges_internal() в файле libsoup/soup-message-headers.c, однако цикл коалесцирования все еще удаляет слитые диапазоны с помощью g_array_remove_index() для каждого элемента. Поскольку GArray является непрерывным массивом, каждое удаление из середины массива выполняет операцию memmove со сложностью O(N). При предоставлении множества идентичных удовлетворяемых диапазонов (например, bytes=0-0 повторяется тысячи раз) цикл выполняет работу со сложностью O(N²), сводя их к одному диапазону.
Уязвимый путь доступен на стороне сервера из функции handle_partial_get() в libsoup/server/http1/soup-server-message-io-http1.c, когда обработчик SoupServer возвращает HTTP 200 с непустым телом ответа (body). Аутентификация не требуется. Количество диапазонов ограничено только максимальным размером заголовка запроса (~100 КиБ), что позволяет отправлять около 25 000 диапазонов в одном запросе. Измерения репортера на версии libsoup HEAD, содержащей исправление CVE-2025-32907, показывают использование ~90 мс процессорного времени одного ядра (single-core CPU) для такого запроса при максимальном размере пакета по сети, что блокирует цикл событий сервера на это время.
Это проблема только исчерпания ресурсов ЦП / доступности (CPU exhaustion). Коррупции памяти или утечки информации не происходит.
Затронуты: версии libsoup, содержащие исправление CVE-2025-32907, но не включающие merge request !550. Исправлено в upstream: MR !550 объединен (merged) 2026-08-20; замена удаления по элементам на компактификацию in-place со сложностью O(N) и отклонение заголовков Range, запрашивающих более 200 диапазонов. Отчет в upstream: https://gitlab.gnome.org/GNOME/libsoup/-/issues/538 Связано с: CVE-2025-32907
Once again VulDB remains the best source for vulnerability data.