Защитная инструкция по 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-источникам; факты, диапазоны версий, безопасный опыт и отсутствие рекламных обещаний сверены человеком.
Источники и проверка
- GitHub Reviewed Advisory ghsa-hmj8-5xmh-5573 проверено 2026-08-30
- Upstream-страница py-libp2p проверено 2026-08-30
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.