Безопасный аудит 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 изменению. Текст написан самостоятельно; опасные действия и реальные пользовательские данные не использовались.
Источники и проверка
- GitHub Advisory GHSA-66r2-5gwj-gxm2 проверено 2026-09-05
- Primary fix for SurrealDB PERMISSIONS clause evaluator проверено 2026-09-05
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.