{"id":"CVE-2026-121418","kind":"vulnerability","aliases":["CVE-2026-121418"],"related":[],"title":"SurrealDB: record users can infer restricted field values via indexes","description":"SurrealDB from 3.1.0 before 3.3.0 contains an incorrect authorization vulnerability that allows record users to infer restricted field values because the streaming planner uses indexes on fields with restrictive SELECT permissions. Attackers can issue full-text MATCHES, compound B-tree, or HNSW KNN queries against restricted fields to learn which records contain guessed values or nearest vectors.","summary":"SurrealDB from 3.1.0 before 3.3.0 lets record users read restricted fields indirectly, because the query planner uses indexes on fields they cannot SELECT. An attacker can run full-text, compound B-tree or HNSW vector queries to learn which records contain guessed values or nearest vectors.","severity":"medium","cvss":5.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["database","other","self-hosted","surrealdb"],"not_affected_if":["no-indexes-on-restricted-fields","no-record-users"],"how_to_check":"- Check the SurrealDB version with `surreal version`; affected releases are 3.1.0 up to but not including `3.3.0`.\n- Review whether record-level SELECT permissions restrict fields that also have indexes (full-text, compound B-tree or HNSW).","fix":"- Move to `3.3.0` or later, per the vulnerability range in the sources.","status":"open","published_at":"2026-11-03T15:17:31+00:00","first_seen_at":"2026-11-03T15:21:59+00:00","triaged_at":"2026-11-03T15:23:35+00:00","updated_at":"2026-11-03T15:23:35+00:00","category":"other","confidence":0.6,"triage":{"at":"2026-11-03T15:23:35Z","model":"claude-haiku-5-5","output":{"fix":"- Move to `3.3.0` or later, per the vulnerability range in the sources.","reach":"network","title":"SurrealDB: record users can infer restricted field values via indexes","impact":"low","summary":"SurrealDB from 3.1.0 before 3.3.0 lets record users read restricted fields indirectly, because the query planner uses indexes on fields they cannot SELECT. An attacker can run full-text, compound B-tree or HNSW vector queries to learn which records contain guessed values or nearest vectors.","audience":"businesses","category":"other","nicknames":[],"who_cares":["surrealdb","database","self-hosted"],"confidence":0.6,"fix_status":"available","needs_auth":"yes","worst_case":"Restricted field values inferred through indexed search queries","analyst_note":"","how_to_check":"- Check the SurrealDB version with `surreal version`; affected releases are 3.1.0 up to but not including `3.3.0`.\n- Review whether record-level SELECT permissions restrict fields that also have indexes (full-text, compound B-tree or HNSW).","plain_action":"","needs_analyst":false,"not_affected_if":["no-record-users","no-indexes-on-restricted-fields"],"who_is_affected":"Teams running SurrealDB 3.1.x or 3.2.x that expose record-level access where some fields are restricted by SELECT permissions but are indexed. Deployments without record users, or without indexes on restricted fields, are less exposed. The sources do not say more than this.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.0007,"input_tokens":4207,"output_tokens":559,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-121418':13A,16A '-2026':12A,15A '3.1.0':25B,73C '3.3.0':27B,75C 'allow':82C 'attack':47B,102C 'author':79C 'b':55B,111C 'b-tree':54B,110C 'cannot':44B 'compound':53B,109C 'contain':65B,76C,124C 'cve':11A,14A 'databas':17B 'field':7A,33B,42B,88C,97C,119C 'full':51B,106C 'full-text':50B,105C 'guess':66B,125C 'hnsw':58B,114C 'host':21B 'incorrect':78C 'index':10A,40B,95C 'indirect':34B 'infer':5A,86C 'issu':104C 'knn':115C 'learn':62B,121C 'let':28B 'match':108C 'nearest':69B,128C 'permiss':101C 'planner':38B,93C 'queri':37B,60B,116C 'read':31B 'record':2A,29B,64B,83C,123C 'restrict':6A,32B,87C,99C,118C 'run':49B 'select':45B,100C 'self':20B 'self-host':19B 'stream':92C 'surrealdb':1A,22B,23B,71C 'text':52B,107C 'tree':56B,112C 'use':39B,94C 'user':3A,30B,84C 'valu':8A,67B,89C,126C 'vector':59B,70B,129C 'via':9A 'vulner':80C","nicknames":[],"mitigations":[],"who_affected":"Teams running SurrealDB 3.1.x or 3.2.x that expose record-level access where some fields are restricted by SELECT permissions but are indexed. Deployments without record users, or without indexes on restricted fields, are less exposed. The sources do not say more than this.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["database","medium","other","selfhosted","surrealdb"],"first_public_at":"2026-10-19T08:52:04+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-121418","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121418","severity":null,"published_at":"2026-11-03T15:17:31+00:00","modified_at":"2026-11-03T15:17:31+00:00","first_seen_at":"2026-11-03T15:21:59+00:00","fetched_at":"2026-11-03T15:21:59+00:00","note":null}],"documents":[{"id":58360,"url":"https://github.com/surrealdb/surrealdb/security/advisories/GHSA-x6mm-9295-rvph","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-19T08:52:04+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":58361,"url":"https://www.vulncheck.com/advisories/surrealdb-3.1.0-before-3.3.0-incorrect-authorization-via-streaming-index-planner","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}