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

SurrealDB 3.2.0: проверка writes внутри PERMISSIONS

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

Безопасный аудит SurrealDB 3.2.0: побочные writes в PERMISSIONS clause, read-only canary counters и подтверждение запрета до основной операции.

Когда проверять SurrealDB PERMISSIONS clause evaluator

До SurrealDB 3.2.0 выражение PERMISSIONS могло выполнять writes, обходя table permissions для побочного target; commit блокирует mutation в evaluation boundary. Сначала сопоставляют advisory с реально загруженной версией, package/image/kernel digest и включённым entry point; название продукта или похожий симптом недостаточны. Если provenance не подтверждён, итог остаётся UNKNOWN. Карточка GHSA-66r2-5gwj-gxm2 и первичное изменение задают узкую границу, а не сообщают о событии в вашей среде. Для иной ветки, backport или configuration вывод пересчитывают отдельно. Диагностика здесь направлена на предотвращение вреда и не содержит эксплуатационного payload.

Evidence map: policy evaluation graph principal × requested table × side-effect target × permission verdict × mutation counter

Создайте артефакт «policy evaluation graph principal × requested table × side-effect target × permission verdict × mutation counter». В него заносят SurrealDB binary/digest, role grants, two synthetic tables, clause AST, before/after row counters, transaction result and audit log. Для каждого значения укажите источник: runtime query, signed artifact hash, deterministic test marker или configuration snapshot. Не смешивайте desired state с effective state и не подменяйте loaded binary записью в lockfile. Сохраняйте только относительные identifiers и счётчики; IP, hostnames, usernames, secrets, реальные документы, содержимое памяти и полные журналы не нужны для решения. Пустое поле обозначайте UNKNOWN, а не PASS.

Лабораторный протокол для surrealdb-permissions-clause-write-boundary

В disposable database использовать permission expression с mock mutation function, заменённой счётчиком, и сравнить allowed pure predicate с rejected side-effect branch без реальных records. До запуска зафиксируйте baseline, SHA-256 fixture, максимум итераций, deadline и способ полного rollback. Положительный control подтверждает, что harness действительно достигает нужной функции; отрицательный обязан остановиться на заявленном validator/authorization/lifecycle boundary. После опыта выполните cleanup и повторно снимите counters. Меняется только один фактор, поэтому наблюдаемый результат можно связать с исправлением. Стенд не использует production credentials, customer data, внешние targets или рабочую нагрузку.

Таблица решения по CVE-2026-63733

PASS фиксируют только когда выполняется условие: Pure predicate решает access штатно, side-effect branch отклоняется до mutation, оба table counters не меняются, transaction и cleanup завершаются. Действие владельца: Обновить SurrealDB до 3.2.0 или новее; до этого исключить writes/functions с побочными эффектами из PERMISSIONS и проверить существующие definitions. AFFECTED означает, что реальный runtime входит в опубликованный диапазон и нужный path доступен. UPDATE-REQUIRED используют при отсутствии подтверждённого fix. NOT-REACHABLE относится лишь к проверенной ветке, не ко всему продукту. После обновления повторяют идентичный control и штатный smoke-test; соседние policy, firmware, network или storage параметры одновременно не меняют, иначе доказательство причинности теряется.

Остановка и безопасная передача SurrealDB PERMISSIONS clause evaluator

Stop-rule: Не выполнять реальную mutation, не ослаблять permissions и остановиться при выходе fixture за две synthetic tables или неясной transaction rollback. При первой неожиданной ошибке не расширяйте права, охват, размер входа или длительность. В минимальный пакет сопровождения входят: SurrealDB digest, normalized clause AST, role/table labels, permission outcomes, two counters, transaction state and database teardown. Добавьте московский timestamp, expected/actual, ссылки на advisory и primary change, владельца rollback. Удалите токены, адреса, персональные данные и raw payloads. Этот пакет подтверждает только выбранный инвариант: он не доказывает отсутствие прошлой эксплуатации, применимость к другой сборке, популярность проблемы, индексацию или будущие позиции страницы.

Материал подготовлен редакцией VOne с помощью автоматизированного черновика. Факты и границы вывода сверены 5 сентября 2026 года по прямой advisory и первичному upstream изменению. Текст написан самостоятельно; опасные действия и реальные пользовательские данные не использовались.

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

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

Ответы

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

Ваш ответ

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

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

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