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

py-libp2p: как проверить проверку DATA length против yamux receive window

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

Защитная инструкция по py-libp2p и ghsa-hmj8-5xmh-5573: установить применимость, проверить проверку DATA length против yamux receive window на одноразовом стенде, измерить безопасный исход и подготовить обратимый выпуск без production-данных.

Карта применимости для py-libp2p

Advisory описывает отдельную проблему: заявленная длина DATA frame может заставить read loop ждать тело вне receive window. Проверяемая граница проходит между yamux header length, stream receive window и read_exactly. Диапазоны Reviewed record: pip:libp2p <= 0.7.0 → fixed version not listed. Экспозиция считается только после сверки runtime и включённой функции. Снимите версия libp2p, negotiated window, declared/actual bytes, stream id state, read timeout, loop health и memory delta. Для каждого элемента укажите observed, expected, unknown или not-applicable, время и происхождение. Severity high не подтверждает атаку, ущерб либо состояние конкретного deployment. Если происхождение бинарника неизвестно, не делайте вывод по одному package manager.

Обратимый тест без эксплуатационного payload

Безопасный опыт: соединить два локальных in-memory peer и отправить один header с длиной немного выше тестового окна, но без большого body; внешний peer и гигабайтные значения не применять. Перед опытом задайте числовой порог и один контрольный вход. Измеримый безопасный исход: frame отклоняется до ожидания body, соединение закрывается контролируемо, второй нормальный local session работает. Не увеличивайте объём, глубину, число соединений или права после первого отклонения. Сохраняйте только decision code, counters, timings и hashes; реальные имена, адреса, credentials и пользовательские данные исключите. Красная линия: используется публичный peer, нужен большой allocation или loop перестаёт отвечать. При её достижении завершите стенд и оставьте результат blocked/unknown вместо попытки воспроизвести атаку.

Окно обновления и контроль регрессии

Зафиксируйте исходный dependency tree и артефакт, установите подтверждённую исправленную ветку из диапазона «pip:libp2p <= 0.7.0 → fixed version not listed» в staging и повторите тот же baseline/boundary/baseline набор. Не меняйте одновременно reverse proxy, role model, parser settings или OS: иначе нельзя связать результат с обновлением. Сравните latency, memory, accepted/rejected decisions и обычный функциональный сценарий. Временный containment снимают только после безопасного результата и готового возврата. Возврат для этой карточки: закрыть обе local sessions, удалить keys/fixtures, остановить processes.

Критерий закрытия и минимальный пакет

Карточка закрывается, когда версия и provenance подтверждены, граничный вход даёт ожидаемый отказ или безопасную обработку, обычный контроль проходит, cleanup завершён, а журнал не содержит новых warning/error. Минимальный пакет для поддержки: version, window, declared/actual lengths, exception, timing, RSS delta и second-session result. В нём не должно быть IP, tokens, passwords, cookies, private keys, полного config, реальных файлов или payload. Отдельной строкой укажите: GitHub Reviewed Advisory подтверждает механизм и диапазон, но не эксплуатацию в этой среде, популярность запроса, индексацию или позиции.

Матрица решений на защитной границе

Разложите сценарий на вход, policy/parser, защищаемый объект и наблюдаемый исход. Для py-libp2p это «между yamux header length, stream receive window и read_exactly». Ветвь close допустима, когда runtime вне указанных диапазонов или функция недостижима и это подтверждено. Ветвь update выбирают при совпавшей версии и доступном фиксированном артефакте. Ветвь contain оставляет узкое ограничение доступа до окна обновления. Ветвь escalate нужна при unknown provenance. Unknown остаётся unknown и передаётся владельцу компонента. Не объединяйте этот механизм с соседними advisory только из-за общего слова security.

Материал подготовлен редакцией VOne с помощью ИИ, затем вручную проверен по двум прямым HTTPS-источникам; факты, диапазоны версий, безопасный опыт и отсутствие рекламных обещаний сверены человеком.

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

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

Ответы

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

Ваш ответ

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

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

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