Защитная инструкция по OpenCost и ghsa-wmj8-9953-vff5: применимость, безопасный тест «границу авторизации endpoint, который создаёт или изменяет ServiceKey», измеримый исход, stop-rule и обезличенный пакет поддержки.
Карта применимости для OpenCost
Проверяемая граница — границу авторизации endpoint, который создаёт или изменяет ServiceKey. Сначала запишите версию исполняемого компонента, digest сборки, способ установки и включённую функцию. Источник задаёт диапазон «go:github.com/opencost/opencost < 1.119.1 → fixed 1.119.1», но lockfile без runtime provenance не определяет состояние сервиса. Отдельно ответьте, достижим ли путь в текущей конфигурации и кем. Если хотя бы одно звено не доказано, статус остаётся unknown. Severity advisory не переносится автоматически на конкретное развёртывание и не подтверждает эксплуатацию.
Факты и границы ghsa-wmj8-9953-vff5
Reviewed record опубликован 2026-07-14, обновлён 2026-07-14 и описывает отдельную проблему: пользователь без нужного полномочия может перезаписать синтетическое значение ServiceKey. Указанные package ranges: «go:github.com/opencost/opencost < 1.119.1 → fixed 1.119.1». Прямая upstream-страница подтверждает проект происхождения, а не установленную у вас версию. Дата, механизм и исправленная граница берутся из advisory; форум, новостной заголовок и поисковый сниппет служат только лидами. Из этих источников нельзя выводить популярность запроса, факт атаки, ущерб, индексирование или позицию.
Диагностическая модель: границу авторизации endpoint, который создаёт или изменяет ServiceKey
Чтение и запись ServiceKey проверяются раздельно: право увидеть объект не означает право заменить его. ResourceVersion фиксирует факт мутации лучше, чем один HTTP status. Marker должен быть бессмысленной случайной строкой, не пригодной как credential. После каждой ветви состояние восстанавливают из заранее записанного baseline, иначе результат второй роли зависит от первой.
Один обратимый опыт
В одноразовой среде нужно в отдельном namespace создать две тестовые роли, пустой ServiceKey и marker-значение; каждой ролью выполнить по одному штатному запросу чтения и записи, затем сравнить status и resourceVersion. До запуска задайте предел времени, CPU, памяти, файлов и число запросов; снимите baseline и команду cleanup. Ожидаемое защитное наблюдение: разрешённая роль меняет marker один раз, запрещённая получает отказ и не изменяет resourceVersion. Используются только marker-объекты, test identities и loopback либо закрытая namespace. Запрещены production tokens, журналы, документы, реальные адреса и сторонние endpoints. Опыт не расширяют после первого граничного результата и обязательно повторяют normal control.
Как принять решение по измерению
Основной артефакт — матрица role / operation / status / resourceVersion / marker digest без самого значения ключа. Passed требует ожидаемого отказа или ограничения на граничной ветви, успешного normal control и возврата ресурсов к baseline. Failed фиксируют только после воспроизводимого расхождения с тем же fixture. Not-applicable требует доказанной версии вне range или недостижимой функции; отсутствие наблюдения не подходит. Unknown сохраняют при неясной сборке, нестабильном стенде или неполном trace. Такая матрица отделяет проверяемый механизм от обычной несовместимости и не превращает предположение в факт.
Обновление, stop-rule и безопасная передача
Жёсткое правило остановки: прекратить при любом изменении от запрещённой роли и удалить только тестовый namespace. Если версия попадает в advisory range, обновление берут из доверенного канала проекта и повторяют тот же fixture с прежними лимитами; другой сценарий не доказывает исправление. Затем выполняют normal control и проверяют rollback criterion. Для поддержки достаточно runtime version, digest, конфигурационной ветви, expected/observed, resource limits, статуса и хэшей synthetic fixtures. Удалите cookies, credentials, IP, внутренние имена, абсолютные пути и содержимое данных. Материал не является эксплуатационной инструкцией и не обещает нулевой риск.
Материал подготовлен редакцией VOne с помощью ИИ, затем вручную проверен по двум прямым HTTPS-источникам; факты, диапазоны версий, безопасный опыт и отсутствие рекламных обещаний сверены человеком.
Источники и проверка
- GitHub Reviewed Advisory ghsa-wmj8-9953-vff5 проверено 2026-08-31
- Upstream-репозиторий OpenCost проверено 2026-08-31
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.