К обсуждениям

libsoup 3: HTTP/2 upload и уменьшение flow-control window

Редакция VOne Технологии

Как определить достижимость CVE-2026-85534 в libsoup 3 при HTTP/2 upload из non-pollable stream и уменьшении flow-control window без вредоносного сервера.

Пять обязательных условий

Не помечайте приложение затронутым только по имени библиотеки. Нужны libsoup ветки 3.x в affected package range поставщика, клиентский HTTP/2, upload с request body, источник body без pollable interface и отложенный read, пока peer способен изменить flow-control window. Дополнительно важна доверенность endpoint: advisory предполагает server-controlled SETTINGS. Зафиксируйте каждое условие true/false/unknown. HTTP/1.1 download, пустой body или pollable bytes body не подтверждают эту конкретную ветку, хотя библиотека всё равно оценивается по support policy.

Runtime dependency

Определите библиотеку, реально загруженную процессом: package version/revision, shared-object path, build ID и linkage контейнера или Flatpak. Source manifest может отличаться от runtime. Не выводите environment, proxy credentials, URL с query и upload contents. Если vendor backport оставил старший номер версии, сопоставьте changelog или advisory дистрибутива с CVE, а не судите по upstream номеру. Несколько загруженных libsoup требуют отдельной строки для каждого процесса и transport path.

Безопасный reachability test

Создайте unit fixture вокруг функции, которая принимает уже синтетический buffered length и текущую callback capacity. Уменьшите capacity между планированием и callback и проверьте, что реализация ограничивает запись, повторно запрашивает окно или контролируемо завершает запрос без выхода за границу. Реальный HTTP/2 peer, сеть и рабочий payload не нужны. Включите sanitizers только в disposable build. Stop-rule действует, если предлагается подключиться к непроверенному серверу, загрузить секретный файл или намеренно уронить production session.

Временное снижение риска

До получения исправленного пакета исключите именно достижимую ветку: не отправляйте non-pollable streaming body по HTTP/2 на недоверенные endpoints. Red Hat отмечает вариант с soup_message_set_request_body_from_bytes как pollable path; применимость проверяют по вашей версии API и нагрузке. Можно временно ограничить endpoint allowlist или транспорт в конкретном клиенте, но нельзя глобально отключать TLS validation. Любой workaround должен быть обратимым, иметь владельца и срок удаления после vendor update.

Итоговый вердикт

PASS — runtime содержит vendor fix или проверенный upstream patch, а mock показывает invariant buffered_length <= current_capacity при уменьшении окна. REACHABLE — все условия подтверждены на affected build; обновление приоритетно, эксплуатационный тест не выполняется. NOT-REACHABLE — конкретное приложение не использует HTTP/2 upload или non-pollable body, что не отменяет lifecycle обновления. UNKNOWN — неизвестен stream type или vendor backport. Crash без подтверждения условий не доказывает эту CVE; соберите безопасный backtrace и версию.

Пакет для сопровождающего

В отчёт входят OS/package revision, process component, libsoup build ID, protocol, upload yes/no, stream pollability, endpoint trust class, mock capacity sequence, sanitizer result и vendor advisory. URL оставьте только как category, body size округлите, содержимое не сохраняйте. Исключите cookies, Authorization, proxy settings, файлы и внутренние hostnames. Отдельно укажите, был ли session abort в журнале, но не делайте вывод об атаке без сетевой и временной корреляции. Материал не утверждает массовость, code execution или универсальную уязвимость всех приложений libsoup.

Материал подготовлен редакцией VOne с помощью автоматизированного черновика. Факты и границы вывода сверены 4 сентября 2026 года по указанным прямым официальным и первичным источникам. Текст написан самостоятельно, опасные действия и реальные пользовательские данные в проверку не включены.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.