{"id":"CVE-2026-121421","kind":"vulnerability","aliases":["CVE-2026-121421"],"related":[],"title":"SurrealDB: port-specific network deny rules can be bypassed, enabling internal SSRF","description":"SurrealDB 3.1.0 before 3.3.0 contains a server-side request forgery vulnerability in network-capability matching because port-specific --deny-net rules (HOST:PORT or IP:PORT) match only a literal host string, while the resolved-IP check discards the port. Authenticated users can call http::* functions with a hostname resolving to a denied IP, or the IP of a denied hostname, to reach blocked internal services.","summary":"SurrealDB 3.1.0 before 3.3.0 has port-specific --deny-net rules that only match literal host strings, and the resolved-IP check ignores the port. An authenticated user calling http::* functions can reach internal services that the deny rules were meant to block.","severity":"medium","cvss":5.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ai-tooling","database","self-hosted","surrealdb"],"not_affected_if":["no-deny-net-rules","unauthenticated-only-access"],"how_to_check":"- Check the SurrealDB version with `surreal version`; affected builds are 3.1.0 up to but not including 3.3.0.\n- Check whether the server is started with `--deny-net` rules that use HOST:PORT or IP:PORT forms.","fix":"- SurrealDB: move to `3.3.0` or later.","status":"open","published_at":"2026-11-03T15:17:32+00:00","first_seen_at":"2026-11-03T15:21:59+00:00","triaged_at":"2026-11-03T15:23:31+00:00","updated_at":"2026-11-03T15:23:31+00:00","category":"ai-tooling","confidence":0.8,"triage":{"at":"2026-11-03T15:23:31Z","model":"claude-haiku-5-5","output":{"fix":"- SurrealDB: move to `3.3.0` or later.","reach":"network","title":"SurrealDB: port-specific network deny rules can be bypassed, enabling internal SSRF","impact":"medium","summary":"SurrealDB 3.1.0 before 3.3.0 has port-specific --deny-net rules that only match literal host strings, and the resolved-IP check ignores the port. An authenticated user calling http::* functions can reach internal services that the deny rules were meant to block.","audience":"businesses","category":"ai-tooling","nicknames":[],"who_cares":["surrealdb","self-hosted","database"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"authenticated user reaches internal services blocked by deny rules","analyst_note":"","how_to_check":"- Check the SurrealDB version with `surreal version`; affected builds are 3.1.0 up to but not including 3.3.0.\n- Check whether the server is started with `--deny-net` rules that use HOST:PORT or IP:PORT forms.\n- unknown whether any other configuration exposes this.","plain_action":"","needs_analyst":false,"not_affected_if":["unauthenticated-only-access","no-deny-net-rules"],"who_is_affected":"Teams running SurrealDB 3.1.0 through 3.2.x that rely on port-specific --deny-net rules to restrict outbound network access from the server. Exposure requires an authenticated user who can call http::* functions. Deployments without --deny-net rules, or using only host-level rules, are not described as affected.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000714,"input_tokens":4227,"output_tokens":582,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-121421':16A,19A '-2026':15A,18A '3.1.0':29B,74C '3.3.0':31B,76C 'ai':21B 'ai-tool':20B 'authent':56B,118C 'block':72B,141C 'bypass':10A 'call':58B,121C 'capabl':88C 'check':51B,114C 'contain':77C 'cve':14A,17A 'databas':23B 'deni':6A,37B,67B,95C,130C,137C 'deny-net':36B,94C 'discard':115C 'enabl':11A 'forgeri':83C 'function':60B,123C 'host':26B,44B,98C,107C 'hostnam':126C,138C 'http':59B,122C 'ignor':52B 'intern':12A,63B,142C 'ip':50B,101C,113C,131C,134C 'liter':43B,106C 'match':42B,89C,103C 'meant':70B 'net':38B,96C 'network':5A,87C 'network-cap':86C 'port':3A,34B,54B,92C,99C,102C,117C 'port-specif':2A,33B,91C 'reach':62B,140C 'request':82C 'resolv':49B,112C,127C 'resolved-ip':48B,111C 'rule':7A,39B,68B,97C 'self':25B 'self-host':24B 'server':80C 'server-sid':79C 'servic':64B,143C 'side':81C 'specif':4A,35B,93C 'ssrf':13A 'string':45B,108C 'surrealdb':1A,27B,28B,73C 'tool':22B 'user':57B,119C 'vulner':84C","nicknames":[],"mitigations":[],"who_affected":"Teams running SurrealDB 3.1.0 through 3.2.x that rely on port-specific --deny-net rules to restrict outbound network access from the server. Exposure requires an authenticated user who can call http::* functions. Deployments without --deny-net rules, or using only host-level rules, are not described as affected.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["aitooling","database","medium","selfhosted","surrealdb"],"first_public_at":"2026-10-19T08:51:54+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:L/SI:L/SA:L/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-121421","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121421","severity":null,"published_at":"2026-11-03T15:17:32+00:00","modified_at":"2026-11-03T15:17:32+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":58366,"url":"https://github.com/surrealdb/surrealdb/commit/9d9a5b0693e499e0d030cac6b618062ec02cd2bc","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":58367,"url":"https://github.com/surrealdb/surrealdb/security/advisories/GHSA-mhv5-88p6-w4c3","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-19T08:51:54+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":58368,"url":"https://www.vulncheck.com/advisories/surrealdb-3.1.0-before-3.3.0-ssrf-via-port-specific-deny-net-host-aliasing-bypass","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"}