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

Rancher Fleet valuesFrom: secret reference ограничивается namespace

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

People-first проверка Rancher Fleet valuesFrom по ghsa-xr65-5cpm-g36x: применимость, безопасный fixture для границы «валидация namespace и service-account authorization для каждого valuesFrom reference», измеримый контракт и stop-rule без production-данных.

Определите применимость Rancher Fleet valuesFrom

Создайте карточку применимости для Rancher Fleet valuesFrom: installed version, package source, build digest, feature/config reachability и роль вызывающего субъекта. Reviewed Advisory описывает «Rancher Fleet vulnerable to cross namespace secret disclosure via unvalidated `valuesFrom` references in Helm Deployer», опубликована 2026-07-01, обновлена 2026-07-01 и задаёт диапазон «github.com/rancher/fleet >= 0.15.0, < 0.15.2; first patched 0.15.2 | github.com/rancher/fleet >= 0.14.0, < 0.14.6; first patched 0.14.6 | github.com/rancher/fleet >= 0.13.0, < 0.13.11; first patched 0.13.11 | github.com/rancher/fleet >= 0.12.0, < 0.12.15; first patched 0.12.15». Эти данные не доказывают состояние конкретного развёртывания. Проверьте vendor backport и commit provenance; при неизвестной сборке оставьте applicability=unknown. Фактическая граница статьи — «валидация namespace и service-account authorization для каждого valuesFrom reference», а не общее обсуждение severity или продукта.

Опишите доверительную границу

Сформулируйте отдельную пользовательскую боль: tenant может сослаться на secret/config map соседнего namespace и получить чужое значение в deployment. Запишите доверенный субъект, объект, управляющую policy и первый потенциальный побочный эффект. Заранее задайте защитный контракт: значение выдаётся только при совпадении namespace и разрешении service account; foreign object не читается. Его нельзя подменять отсутствием исключения или HTTP 200: важна стадия до чтения, передачи, allocation, mutation или delivery. Рабочий артефакт — tenant / workload-namespace / object-namespace / service-account / read-attempts / result. В нём нужны только классы и счётчики; значения credentials, содержимое файлов, IP, account identifiers и персональные данные исключаются.

Соберите обратимый стенд

Постройте минимальный обратимый стенд: fake cluster inventory двух namespaces, два service accounts и synthetic references без Kubernetes API. Затем разрешить same-namespace reference и отклонить foreign reference, сохраняя лишь object class и decision. Сеть должна быть отключена или замкнута на loopback, filesystem — на disposable temp, state — на in-memory либо transaction rollback. Добавьте штатный контроль и отрицательный boundary-case, дайте каждому bounded timeout и одинаковую конфигурацию. До проверки внесите в карточку digest входа; после опыта сохраните result class, side-effect counters и cleanup proof. Не увеличивайте нагрузку и не пытайтесь воспроизвести вредный эффект на чужой системе.

Измерьте контракт до побочного эффекта

Сведите observed в матрицу «tenant / workload-namespace / object-namespace / service-account / read-attempts / result» и сравните с критерием «значение выдаётся только при совпадении namespace и разрешении service account; foreign object не читается». Для каждого ряда отметьте decision stage, mutation/read/send counter, final state digest и отклонение от expected. Normal-control обязан пройти тот же код, иначе отрицательный итог ничего не говорит о защите. Повторите лишь малый детерминированный набор; расхождение порядка считается отдельным race/cache сигналом. Pass ставится только когда запрет срабатывает раньше чувствительного действия, а разрешённый сценарий сохраняет documented behavior.

Свяжите patch с узким механизмом

Проверьте исправление по механизму, а не по номеру версии: upstream patch должен напрямую обеспечивать «валидация namespace и service-account authorization для каждого valuesFrom reference». Сопоставьте pre/post build на том же тестовая заготовка и сравните «tenant / workload-namespace / object-namespace / service-account / read-attempts / result». Для диапазона «github.com/rancher/fleet >= 0.15.0, < 0.15.2; first patched 0.15.2 | github.com/rancher/fleet >= 0.14.0, < 0.14.6; first patched 0.14.6 | github.com/rancher/fleet >= 0.13.0, < 0.13.11; first patched 0.13.11 | github.com/rancher/fleet >= 0.12.0, < 0.12.15; first patched 0.12.15» отдельно внесите в карточку vendor patch provenance и release artifact digest. Canary допускается только в лаборатории; production rollout требует отдельного change contract, backup и rollback. Не объявляйте систему безопасной целиком: этот опыт подтверждает один узкий invariant и не говорит об эксплуатации, ущербе, спросе, индексации или позиции страницы.

Остановитесь и подготовьте поддержку

Примените жёсткий stop-rule: остановиться до кластера, реального secret name/value или cluster-wide resource. Красные флаги также включают внешний адрес, реальный credential, privilege prompt, необратимую запись, рост ресурсов, данные не из тестовая заготовка, отсутствие cleanup и изменившийся объект вне test root. При первом флаге примените stop-rule и оставьте статус blocked. Для поддержки передайте ghsa-xr65-5cpm-g36x, Rancher Fleet valuesFrom, «github.com/rancher/fleet >= 0.15.0, < 0.15.2; first patched 0.15.2 | github.com/rancher/fleet >= 0.14.0, < 0.14.6; first patched 0.14.6 | github.com/rancher/fleet >= 0.13.0, < 0.13.11; first patched 0.13.11 | github.com/rancher/fleet >= 0.12.0, < 0.12.15; first patched 0.12.15», reachability evidence, sanitized matrix, штатный контроль, stop reason и две прямые ссылки. Не публикуйте payload и чужие логи; неизвестное обозначьте unknown, а не выдуманным фактом.

Используйте минимальное дерево решения

Минимальное дерево решения для Rancher Fleet valuesFrom: если версия вне доказанного affected range и patch provenance подтверждён — not-applicable; если ветвь недостижима по документированной конфигурации — not-reachable; если тестовая заготовка даёт «значение выдаётся только при совпадении namespace и разрешении service account; foreign object не читается» на candidate build — ready-for-reviewed-update; если наблюдается «tenant может сослаться на secret/config map соседнего namespace и получить чужое значение в deployment» — fail и эскалация владельцу. Во всех остальных случаях статус unknown. К карточке приложите «tenant / workload-namespace / object-namespace / service-account / read-attempts / result» и criterion «остановиться до кластера, реального secret name/value или cluster-wide resource». Такое дерево не превращает один advisory в универсальную рекомендацию и сохраняет people-first приоритет: минимальное воздействие, ясная остановка и проверяемый ответ.

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

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

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

Ответы

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

Ваш ответ

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

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

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