Ad

CVE-2026-77680

MEDIUM CVSS 3.1: 5,3
Обновлено 26 августа 2026
Red Hat
Параметр Значение
CVSS 5,3 (MEDIUM)
Тип уязвимости CWE-407
Поставщик Red Hat
Публичный эксплойт Нет

В обработке заголовка HTTP Range в libsoup существует недостаток алгоритмической сложности, который сохраняется после исправления CVE-2025-32907. CVE-2025-32907 устраняет проблему увеличения памяти, когда клиент много раз повторяет один и тот же диапазон в одном заголовке Range. Коммит 9bb92f7a исправил корректность слияния в супе_message_headers_get_ranges_internal() в libsoup/soup-message-headers.c, но цикл объединения по-прежнему удаляет объединенные диапазоны с помощью g_array_remove_index() для каждого объединенного элемента. Поскольку GArray является смежным, каждое удаление в середине массива выполняет перемещение памяти O(N).

Когда предоставляется множество одинаковых выполнимых диапазонов (например, байты = 0–0, повторяющиеся тысячи раз), цикл выполняет работу O(N²), объединяя их в один диапазон. Уязвимый путь доступен на стороне сервера из handle_partial_get() в libsoup/server/http1/soup-server-message-io-http1.c, когда обработчик SoupServer возвращает HTTP 200 с непустым телом. Никакой аутентификации не требуется.

Количество диапазонов ограничено только максимальным размером заголовка запроса (~ 100 КиБ), что позволяет использовать примерно 25 000 диапазонов на запрос. Измерения Reporter в libsoup HEAD, содержащем исправление CVE-2025-32907, показывают, что одноядерный ЦП составляет ~90 мс на такой запрос при максимуме провода, блокируя цикл событий сервера на это время. Это проблема только нехватки/доступности ЦП.

Никакого повреждения памяти или раскрытия информации не происходит. Затронуто: версии libsoup, содержащие исправление CVE-2025-32907, но без мерж-реквеста !550. Исправлено исходное сообщение: MR !550 объединено 20 августа 2026 г., заменяя удаление каждого элемента на уплотнение на месте O(N) и отклоняя заголовки Range, запрашивающие более 200 диапазонов.

Отчет об исходной версии: https://gitlab.gnome.org/GNOME/libsoup/-/issues/538. Связанное: CVE-2025-32907.

Показать оригинальное описание (EN)

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

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Нет
Нет утечки данных
Целостность
Нет
Нет модификации данных
Доступность
Низкое
Частичное нарушение работы

Строка CVSS v3.1

Тип уязвимости (CWE)

Уязвимые продукты

red hat:red hat enterprise linux 10