Безопасная проверка @hapi/wreck redirect handling по ghsa-x426-x7cc-3fpc: применимость, обратимый fixture, from-origin / to-origin / scheme / effective-port / same-origin / credential-present, PASS и stop-rule без production-данных.
Разберите симптом @hapi/wreck redirect handling
Отдельная пользовательская боль: Authorization/Cookie сохраняются при same-host redirect на другой port или HTTPS→HTTP. Reviewed advisory описывает «@hapi/wreck: Sensitive credential headers leak across cross-port and cross-scheme redirects»; практический механизм: Origin — tuple scheme/host/effective-port. Сравнение только hostname ошибочно объединяет разные security principals и допускает downgrade. Проверяем invariant «credential headers сохраняются только при полном same-origin redirect без scheme downgrade», а не общий класс проблем. Запись ghsa-x426-x7cc-3fpc опубликована 2026-06-11, обновлена 2026-06-11; ecosystem boundary: «npm/@hapi/wreck < 18.1.2; first patched 18.1.2». Это не доказывает affected code в fork, факт эксплуатации, популярность или поисковый спрос.
Сопоставьте runtime и безопасный control
Зафиксируйте source package, runtime version, build digest, commit provenance, feature/config state и роль, достигающую ветви. Нормальный control: same-origin hop сохраняет разрешённый marker. Отдельно укажите самый ранний read/write/send/execute/cache/credential side effect. Если provenance или reachability неизвестна, статус unknown. Версионный диапазон «npm/@hapi/wreck < 18.1.2; first patched 18.1.2» — фильтр; backport подтверждается diff и поведением, а не предположением.
Запустите обратимый fixture
Лабораторный опыт: Redirect policy unit test проверит same origin, port change, scheme change и hostname case; header values — marker. Все идентификаторы и данные синтетические; network отключён или заменён recorder, filesystem ограничен mkdtemp, persistence — memory adapter/rollback. До запуска сохраните input digest, ожидаемое правило «cross-port/cross-scheme/downgrade удаляет все credential headers до next request» и нулевые counters. После — строку «from-origin / to-origin / scheme / effective-port / same-origin / credential-present», final-state digest и cleanup proof. Реальный payload, credential, нагрузка или production mutation запрещены.
Прочитайте матрицу from-origin / to-origin / scheme / effective-port / same-origin / credential-present
Убедитесь, что control прошёл именно нужную ветвь, затем найдите stage policy и любой чувствительный action. PASS возможен только если cross-port/cross-scheme/downgrade удаляет все credential headers до next request. Один status code, отсутствие exception или запись в лог не доказывают защиту. Для concurrency/state boundary используйте fixed barriers и малый детерминированный повтор. Любой неожиданный side effect переводит результат в fail/unknown до объяснения и полного cleanup.
Свяжите patch, stop-rule и решение
Diff исправления должен реализовать смысл «credential headers сохраняются только при полном same-origin redirect без scheme downgrade» до side effect. Красные флаги: fail-open, policy после action, несовпадение requested/effective target, неполный transport/path coverage или отсутствующий negative control. Stop-rule: не отправлять HTTP и не использовать cookie/token. Также остановитесь при privilege prompt, реальных данных, необратимой записи, росте ресурсов или невозможности cleanup. Дерево: proven patched — not-applicable; недостижимо — not-reachable; PASS — ready-for-reviewed-update; наблюдается «Authorization/Cookie сохраняются при same-host redirect на другой port или HTTPS→HTTP» — fail; иначе unknown. В support packet включите ghsa-x426-x7cc-3fpc, build provenance, «from-origin / to-origin / scheme / effective-port / same-origin / credential-present», expected/observed, stop reason и две source URL без секретов/персональных данных. Production rollout требует отдельного backup, canary, readiness и rollback.
Материал подготовлен редакцией VOne с помощью ИИ; даты, диапазоны, прямые источники, безопасный fixture, privacy-границы и отсутствие рекламных обещаний затем перепроверены.
Источники и проверка
- GitHub Reviewed Advisory ghsa-x426-x7cc-3fpc проверено 2026-08-31
- Official/upstream source for @hapi/wreck redirect handling проверено 2026-08-31
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.