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

Axios HTTP/2: лимит maxBodyLength для потоковой загрузки

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

Защитная диагностика Axios HTTP/2: лимит maxBodyLength для потоковой загрузки по GHSA-mwf2-3pr3-8698: применимость, изолированный тест, измеримый verdict, stop-rule и пакет данных для владельца.

Короткий ответ и применимость — Axios HTTP/2: лимит maxBodyLength для потоковой загрузки

Проверяемая задача: проверить что HTTP/2 adapter Axios учитывает фактически отправленные байты Readable stream до завершения загрузки. Сначала подтвердите фактически загруженный компонент axios, его digest, затронутый entry point и границу версий «npm:axios >= 1.13.0, < 1.18.0; first patched 1.18.0». Только после inventory выполняется ограниченный regression: В fake HTTP/2 session подать несколько коротких chunks около малого тестового cap; сеть заменить sink-spy. Пользовательская боль здесь конкретна: поток без заранее известной длины может пройти предварительную проверку и превысить установленный предел тела. Результат оформляется как таблица configured cap / emitted bytes / abort event / upstream writes / verdict. GHSA GHSA-mwf2-3pr3-8698 — ориентир для проверки, но не доказательство состояния вашей установки.

Модель решения — Axios HTTP/2: лимит maxBodyLength для потоковой загрузки

Разложите путь на Source → Parse/Normalize → Policy → Side effect. Специальная инварианта этой темы: Решение принимается перед каждой записью chunk; отсутствие Content-Length не отменяет maxBodyLength. Для каждой границы запишите представление данных, владельца решения, ожидаемый counter и допустимый переход состояния. NOT_APPLICABLE возможен только при доказанном отсутствии пакета либо функции; неизвестная версия, конфигурация или digest означают UNKNOWN, а не безопасность.

Безопасный стенд — Axios HTTP/2: лимит maxBodyLength для потоковой загрузки

Используйте disposable temp directory, in-memory repository или pure adapter, не production. Протокол стенда: В fake HTTP/2 session подать несколько коротких chunks около малого тестового cap; сеть заменить sink-spy. Все внешние действия — сеть, shell, database, filesystem, browser, message broker, session issuance — заменяются spies или счётчиками. Применяйте короткие canary labels; реальные токены, IP, учётные записи, конфиги и пользовательские данные запрещены. До control сохраните baseline hash и нулевые counters.

Control и boundary-case — Axios HTTP/2: лимит maxBodyLength для потоковой загрузки

Разрешённый control доказывает достижимость нужной ветки, но не снимает ограничений. Boundary-case меняет ровно один параметр и должен остановиться до состояния «поток без заранее известной длины может пройти предварительную проверку и превысить установленный предел тела». Сохраните поля таблица configured cap / emitted bytes / abort event / upstream writes / verdict, reason code, monotonic duration и cleanup state. Решение принимается перед каждой записью chunk; отсутствие Content-Length не отменяет maxBodyLength. Не увеличивайте размер, глубину или число повторов после первого нарушения и не создавайте эксплуатационный payload.

PASS, FAIL, UNKNOWN — Axios HTTP/2: лимит maxBodyLength для потоковой загрузки

PASS требует подтверждённых runtime и entry point, успешного control, остановки boundary до side effect и доказанного cleanup. FAIL — тот же provenance и наблюдаемый запрещённый вызов, counter или state transition. UNKNOWN — нет digest, конфигурации, точки наблюдения, control либо восстановления. NOT_APPLICABLE — компонент или функция доказанно отсутствуют. Номер исправленной версии без runtime readback не является PASS.

Красная линия — Axios HTTP/2: лимит maxBodyLength для потоковой загрузки

Немедленно остановитесь, если счётчик перешёл cap, а следующий chunk достиг sink, либо abort не завершил source. Не повторяйте проверку с более сильным вводом. Верните disposable state к исходному hash, освободите объекты и выполните один benign control. Любой неожиданный ненулевой counter сети, процессов, файлов, записей, исходящих маршрутов или сессий блокирует PASS и фиксируется отдельно от результата parser/policy.

Почему это отдельная статья — Axios HTTP/2: лимит maxBodyLength для потоковой загрузки

Переносит ограничение с метаданных запроса на монотонный счётчик реально отправленного потока. Не Fetch ReadableStream и не общий timeout: отдельна ветка HTTP/2 upload accounting. Поэтому механическая замена бренда, ОС или устройства не создаёт ещё один URL. Самостоятельная практическая ценность выражена в deliverable «таблица configured cap / emitted bytes / abort event / upstream writes / verdict» и инварианте «Решение принимается перед каждой записью chunk; отсутствие Content-Length не отменяет maxBodyLength.». Если опубликованная страница уже покрывает тот же intent и дерево решения, правильное действие — update/merge, а не новая страница.

Пакет для владельца — Axios HTTP/2: лимит maxBodyLength для потоковой загрузки

Передайте владельцу GHSA GHSA-mwf2-3pr3-8698, runtime digest, границу «npm:axios >= 1.13.0, < 1.18.0; first patched 1.18.0», entry point, sanitized config, control/boundary rows, counters, verdict, stop reason и cleanup proof. Advisory опубликована 2026-07-20, обновлена 2026-09-01; даты подтверждают свежесть проверенного источника, но не популярность запроса и не факт эксплуатации. После remediation повторите тот же fixture и сравните state transition без изменения тестового масштаба.

Материал подготовлен редакцией VOne с помощью автоматизированного черновика; даты, версии, границы и ссылки сверены по GitHub Advisory Database и прямой upstream-странице. Текст самостоятельный, не копирует источник и не содержит эксплуатационных шагов.

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

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

Ответы

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

Ваш ответ

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

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

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