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

amqp091-go: проверка лимита broker payload

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

Безопасный аудит amqp091-go для broker-controlled oversized payload: negotiated frame limits, length validator и no-allocation mock reader.

Сначала отделите симптом от факта: RabbitMQ amqp091-go frame reader

Advisory описывает memory exhaustion и protocol violation при oversized payload от broker; primary change вводит проверки до опасного allocation/read path. Применимость устанавливают по реально загруженной версии и доступности именно этого entry point; совпадение названия продукта, общего класса ошибки или CVE в scanner недостаточно. Зафиксируйте package/image/binary digest и effective configuration. GHSA-6c5v-hqjr-5xxp задаёт внешнюю границу исследования, а primary change показывает, что изменил maintainer. Пока provenance или reachability не подтверждены, состояние остаётся UNKNOWN. Advisory не сообщает, что конкретная система была атакована, и материал не воспроизводит опасный input.

Матрица решения: frame matrix negotiated max × declared length × allocation bytes × connection outcome × error class

Соберите «frame matrix negotiated max × declared length × allocation bytes × connection outcome × error class». Нужные поля: amqp091-go version, negotiated frame-max, fake reader declarations, allocator counter, connection state и error telemetry. Каждую строку свяжите с измерением, а не предположением: runtime query, immutable hash, test recorder или bounded counter. Desired config и effective behavior держите в разных колонках. Применяйте TRUE, FALSE, UNKNOWN и NOT-APPLICABLE с короткой причиной. Удалите hostname, IP, usernames, tokens, document content, memory dumps и raw request bodies; для воспроизводимости достаточно относительных ids, размеров, типов и итоговых классов.

Два контроля без опасного payload

В unit test использовать header-only fake reader с lengths ниже, на и выше limit; payload bytes не создавать, allocator заменить recorder. Перед выполнением запишите SHA-256 fixture, исходные counters, deadline, memory/process ceiling и rollback. Positive control доказывает, что harness достигает нужной функции; negative control должен остановиться на validator, authorization, containment или lifecycle boundary до необратимого эффекта. После каждого случая выполните cleanup и повторно проверьте baseline. Не увеличивайте вход до фактического отказа: достаточно test double, recorder, inert marker либо малого synthetic object.

Что считать PASS для CVE-2026-79921

PASS разрешён только при таком результате: Допустимые lengths следуют normal parser; превышение отклоняется до allocation/read, connection завершает protocol error bounded, recorder не показывает большой request. Практическое действие: Обновить library до release с PR; дополнительно настроить разумный frame-max, не полагаясь только на broker trust. Если runtime входит в affected range и path доступен, ставят UPDATE-REQUIRED. NOT-REACHABLE относится только к проверенной функции; UNKNOWN сохраняют при неподтверждённом backport или расходящихся hashes. После update повторяют ровно ту же матрицу и один штатный smoke-test. Одновременные изменения network, policy, dependency или data state запрещены: они делают причинность непроверяемой.

Красные линии и передача владельцу

Немедленный stop-rule: Не подключаться к внешнему broker, не выделять большой buffer и остановиться при фактическом allocation сверх test ceiling. Не расширяйте привилегии, глубину, размер, скорость или охват после неожиданного warning, timeout, cross-boundary call или state mutation. Передайте только module/commit digest, negotiated limit, declared-length cases, allocator/read counters, error/connection state и test teardown, плюс московское время, expected/actual, advisory/primary URLs и владельца rollback. Очистите secrets и персональные данные. Такой пакет подтверждает выбранный инвариант, но не отсутствие прошлой эксплуатации, безопасность всей системы, применимость к другой версии, поисковую популярность, индексацию или позиции.

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

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

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

Ответы

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

Ваш ответ

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

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

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