{"id":"CVE-2026-121422","kind":"vulnerability","aliases":["CVE-2026-121422"],"related":[],"title":"SurrealDB: JWKS URLs bypass deny-net rules, enabling internal server-side requests","description":"SurrealDB from 3.1.0 before 3.3.0 contains a server-side request forgery vulnerability that allows database Owners to bypass port-specific deny-net rules by using JWKS URLs with implicit default ports. Attackers can configure a JWT or record access method whose JWKS URL omits port 80 or 443, causing blind GET requests to explicitly denied internal services.","summary":"SurrealDB versions from 3.1.0 before 3.3.0 let a database Owner set a JWKS URL without an explicit port, which skips port-specific deny-net rules. The server then sends blind GET requests to internal services that were meant to be blocked.","severity":"medium","cvss":5.1,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ai-tooling","jwks","jwt","self-hosted","surrealdb"],"not_affected_if":["no-deny-net-rules","no-jwks-access-methods","versions-outside-3.1.0-to-3.3.0"],"how_to_check":"- Check the running SurrealDB version with `surreal version`; versions from `3.1.0` up to but not including `3.3.0` are in range.\n- Review deny-net rules and whether JWT or record access methods with JWKS URLs are configured.","fix":"- Move to `3.3.0` or later, per the sources' stated fixed version.","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:24:46+00:00","updated_at":"2026-11-03T15:24:46+00:00","category":"ai-tooling","confidence":0.7,"triage":{"at":"2026-11-03T15:24:46Z","model":"claude-haiku-5-5","output":{"fix":"- Move to `3.3.0` or later, per the sources' stated fixed version.","reach":"network","title":"SurrealDB: JWKS URLs bypass deny-net rules, enabling internal server-side requests","impact":"medium","summary":"SurrealDB versions from 3.1.0 before 3.3.0 let a database Owner set a JWKS URL without an explicit port, which skips port-specific deny-net rules. The server then sends blind GET requests to internal services that were meant to be blocked.","audience":"businesses","category":"ai-tooling","nicknames":[],"who_cares":["surrealdb","self-hosted","jwt","jwks"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"Database server reaches internal services blocked by deny-net rules.","analyst_note":"","how_to_check":"- Check the running SurrealDB version with `surreal version`; versions from `3.1.0` up to but not including `3.3.0` are in range.\n- Review deny-net rules and whether JWT or record access methods with JWKS URLs are configured.","plain_action":"","needs_analyst":false,"not_affected_if":["versions-outside-3.1.0-to-3.3.0","no-jwks-access-methods","no-deny-net-rules"],"who_is_affected":"Teams running self-hosted SurrealDB 3.1.x or 3.2.x that use JWT or record access methods with JWKS URLs and rely on deny-net rules to block internal services. Exposure requires a database Owner role, so deployments where only trusted administrators hold Owner can rate it lower. Managed hosting is not covered by these sources.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000722,"input_tokens":4199,"output_tokens":605,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-121422':17A,20A '-2026':16A,19A '3.1.0':33B,75C '3.3.0':35B,77C '443':123C '80':121C 'access':114C 'ai':22B 'ai-tool':21B 'allow':87C 'attack':107C 'blind':61B,125C 'block':72B 'bypass':4A,91C 'caus':124C 'configur':109C 'contain':78C 'cve':15A,18A 'databas':38B,88C 'default':105C 'deni':6A,54B,96C,130C 'deny-net':5A,53B,95C 'enabl':9A 'explicit':46B,129C 'forgeri':84C 'get':62B,126C 'host':28B 'implicit':104C 'intern':10A,65B,131C 'jwks':2A,24B,42B,101C,117C 'jwt':25B,111C 'let':36B 'meant':69B 'method':115C 'net':7A,55B,97C 'omit':119C 'owner':39B,89C 'port':47B,51B,93C,106C,120C 'port-specif':50B,92C 'record':113C 'request':14A,63B,83C,127C 'rule':8A,56B,98C 'self':27B 'self-host':26B 'send':60B 'server':12A,58B,81C 'server-sid':11A,80C 'servic':66B,132C 'set':40B 'side':13A,82C 'skip':49B 'specif':52B,94C 'surrealdb':1A,29B,30B,73C 'tool':23B 'url':3A,43B,102C,118C 'use':100C 'version':31B 'vulner':85C 'whose':116C 'without':44B","nicknames":[],"mitigations":[],"who_affected":"Teams running self-hosted SurrealDB 3.1.x or 3.2.x that use JWT or record access methods with JWKS URLs and rely on deny-net rules to block internal services. Exposure requires a database Owner role, so deployments where only trusted administrators hold Owner can rate it lower. Managed hosting is not covered by these sources.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["aitooling","jwks","jwt","medium","selfhosted","surrealdb"],"first_public_at":"2026-10-19T08:51:43+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:L/VI:N/VA:N/SC:L/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-121422","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121422","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":58369,"url":"https://github.com/surrealdb/surrealdb/security/advisories/GHSA-h3mp-7wcg-p6vj","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-19T08:51:43+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":58370,"url":"https://www.vulncheck.com/advisories/surrealdb-from-3.1.0-before-3.3.0-ssrf-via-jwks-implicit-default-port-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"}