Защитная диагностика etcd Watch API RBAC по ghsa-xg4h-6gfc-h4m8: применимость, обратимый локальный control, измеримый verdict, stop-rule и минимальный пакет данных для владельца системы.
Короткий ответ — etcd Watch: граница open-ended range
Эта страница решает узкую задачу: проверить, что etcd Watch ограничивает поток событий точным RBAC range пользователя. Advisory ghsa-xg4h-6gfc-h4m8 — актуальный сигнал для inventory, но не доказательство состояния конкретной системы. Зафиксируйте фактически загруженный etcd Watch API RBAC, lock-файл или image digest и границу «go.etcd.io/etcd/v3: introduced 3.7.0-alpha.0, fixed 3.7.1; introduced 3.6.0, fixed 3.6.14; introduced 0, fixed 3.5.33». Пользовательская боль: право READ на один точный ключ может расшириться на события последующих ключей при open-ended watch. Проверка должна завершиться артефактом «таблица grant range / requested range / emitted key / authorization code / revision», который можно повторить без production-данных, внешней сети и предположений о том, что одна версия автоматически означает безопасное поведение.
Как очертить границу etcd Watch API RBAC
Нарисуйте только один путь: authenticated principal → granted key range → watch request range → delivered event keys. На каждом переходе отметьте владельца значения, допустимый тип, policy decision и возможный side effect. Инварианта этой проверки: каждый delivered key входит в пересечение requested range и RBAC grant, а соседние ключи не появляются. NOT_APPLICABLE допустим только при доказанном отсутствии компонента или недостижимости ветки; неизвестный digest, effective config или способ вызова дают UNKNOWN. Не расширяйте scope на соседние API или похожие классы ошибок: их доказательства и remediation могут отличаться.
Инвентаризация и применимость до эксперимента
Сопоставьте SBOM, package manager, container digest и runtime readback с диапазоном «go.etcd.io/etcd/v3: introduced 3.7.0-alpha.0, fixed 3.7.1; introduced 3.6.0, fixed 3.6.14; introduced 0, fixed 3.5.33». Выберите один reason code: AFFECTED_PATH, PATCHED_PATH, COMPONENT_ABSENT или PROVENANCE_UNKNOWN. Затем подтвердите, что вызывается именно исследуемая функция, а не vendored fork, fallback или другой worker. Сам по себе номер исправленного релиза, отсутствие инцидента, HTTP 200 или активный сервис не доказывают инварианту «каждый delivered key входит в пересечение requested range и RBAC grant, а соседние ключи не появляются». Эта развилка не требует опасного входа и должна предшествовать любому control.
Обратимый тест для etcd Watch API RBAC
Используйте disposable fixture: в одноразовом локальном etcd fixture создать три безличных ключа и read-only watch для test principal с точным grant. Подмените сеть, файловую систему, subprocess, database, очереди, токены и пользовательские объекты fake/spies. До начала сохраните baseline digest и нулевые counters; задайте лимиты времени, памяти и операций. Boundary-case должен менять ровно один признак и оставаться коротким синтетическим маркером, не эксплуатационным payload. После каждой строки полностью восстанавливайте fixture, иначе результат может объясняться предыдущим состоянием.
Матрица наблюдений и ожидаемые строки
Benign control сначала доказывает достижимость нужной ветки. Затем boundary-case проверяет боль «право READ на один точный ключ может расшириться на события последующих ключей при open-ended watch». Для каждой строки сохраните таблица grant range / requested range / emitted key / authorization code / revision, duration, reason code, counters до/после и digest состояния. Успешная обработка не равна PASS, пока не подтверждено: каждый delivered key входит в пересечение requested range и RBAC grant, а соседние ключи не появляются. Если recorder пропустил side effect, control не достиг функции или окружение нельзя вернуть к baseline, verdict — UNKNOWN. Более сильный вход или больше повторов не исправляют слабую наблюдаемость.
Правила PASS, FAIL и UNKNOWN
PASS требует пяти элементов: подтверждённый provenance, успешный benign control, соблюдение инварианты «каждый delivered key входит в пересечение requested range и RBAC grant, а соседние ключи не появляются», нулевые запрещённые side effects и cleanup proof. FAIL требует подтверждённого пути и наблюдаемого нарушения именно этой policy. UNKNOWN ставят при нехватке version readback, effective config, recorder или воспроизводимого fixture. Немедленный stop-rule: watch выдал событие ключа вне grant или пришлось использовать production cluster. После него не повторяйте boundary-case и не переносите тест на production.
Cleanup и сравнение после обновления
Закройте ресурсы, удалите disposable state, верните fake adapters и сравните hashes и counters с baseline. Остаточный файл, socket, процесс, новая строка БД или изменение очереди блокирует PASS. После обновления повторите те же входы и лимиты, не меняя размер данных. Сравните таблица grant range / requested range / emitted key / authorization code / revision: только так видно, исправлен ли переход «authenticated principal → granted key range → watch request range → delivered event keys», а не маскируется ли результат другим окружением или иной веткой выполнения.
Самостоятельная ценность и пакет для владельца
Отделяет потоковую авторизацию Watch от Range/Get и DeleteRange: deliverable — пересечение двух диапазонов по каждой ревизии. Поэтому URL отвечает на отдельный intent «проверить, что etcd Watch ограничивает поток событий точным RBAC range пользователя», а не является заменой бренда, ОС или устройства. Передайте владельцу ghsa-xg4h-6gfc-h4m8, digest компонента, effective version/config, диапазон «go.etcd.io/etcd/v3: introduced 3.7.0-alpha.0, fixed 3.7.1; introduced 3.6.0, fixed 3.6.14; introduced 0, fixed 3.5.33», схему «authenticated principal → granted key range → watch request range → delivered event keys», control и boundary rows, таблица grant range / requested range / emitted key / authorization code / revision, verdict, stop reason и cleanup proof. Advisory опубликована 2026-07-24 и обновлена 2026-08-12; эти даты подтверждают свежесть источника, но не популярность запроса, эксплуатацию и применимость к конкретному deployment.
Материал подготовлен редакцией VOne с помощью автоматизированного черновика; даты, версии и ссылки сверены по GitHub Advisory Database и первичному upstream-материалу. Текст самостоятельный, не копирует источники, не содержит эксплуатационных последовательностей и предназначен для безопасной локальной проверки.
Источники и проверка
- GitHub Advisory Database — ghsa-xg4h-6gfc-h4m8 проверено 2026-09-03
- Первичный upstream-материал — etcd Watch API RBAC проверено 2026-09-03
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.