Skip to main content

SurrealDB EUVDEUVD-2025-210489

| CVE-2025-71398 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-07-18 VulnCheck GHSA-xhwm-9486-8rgr
5.8
CVSS 4.0 · Vendor: VulnCheck
Share

Severity by source

Vendor (VulnCheck) PRIMARY
5.8 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:L/VA:L/SC:H/SI:H/SA:H/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
vuln.today AI
9.1 CRITICAL

Network-exploitable by authenticated user; scope changes because impact falls on internal systems beyond SurrealDB; confidentiality high due to potential credential retrieval from internal services like IMDSv1.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:L
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:L/VA:L/SC:H/SI:H/SA:H

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:L/VA:L/SC:H/SI:H/SA:H/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
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

3
Patch available
Jul 18, 2026 - 15:17 EUVD
Source Code Evidence Fetched
Jul 18, 2026 - 14:09 vuln.today
Analysis Generated
Jul 18, 2026 - 14:09 vuln.today

DescriptionCVE.org

SurrealDB before 2.2.2 fails to validate HTTP redirects in http functions, allowing authenticated users to bypass deny-net restrictions by redirecting to blocked IP addresses. Attackers can host a public server that redirects to denied network targets, enabling server-side request forgery to access internal endpoints and retrieve sensitive information.

AnalysisAI

Server-side request forgery in SurrealDB before versions 2.0.5, 2.1.5, and 2.2.2 allows authenticated users to circumvent administrator-configured deny-net network restrictions by exploiting unchecked HTTP redirects in the native http::* query functions. An attacker operates a public HTTP server that issues 301 or 307 redirects to denied internal addresses; SurrealDB follows those redirects without re-validating the destination against the deny-net ACL, and returns the internal response directly to the attacker's query result. No public exploit code has been identified at time of analysis; this issue was discovered by cure53 during a commissioned security audit and penetration test of SurrealDB.

Technical ContextAI

SurrealDB is a multi-model database written in Rust that exposes built-in http::* functions (e.g., http::get, http::post) allowing SurrealQL queries to make outbound HTTP calls. Administrators restrict outbound access using the --allow-net and --deny-net capability flags - for example, 'surreal start --allow-net --deny-net 10.0.0.0/8' blocks access to RFC-1918 space while permitting all other destinations. The root cause is CWE-918 (Server-Side Request Forgery): the deny-net check is evaluated only against the initial request URL, not against redirect destinations. When an intermediate server returns HTTP 301 or 307 pointing to a denied IP range, SurrealDB's HTTP client follows the redirect without re-running the ACL check, fully bypassing the restriction. The affected package is identified by CPE cpe:2.3:a:surrealdb:surrealdb:*:*:*:*:*:*:*:* covering the Rust crate rust/surrealdb across all vulnerable version lines.

RemediationAI

Upgrade SurrealDB to one of the three patched releases - 2.0.5, 2.1.5, or 2.2.2 - which introduce an HTTP redirect limit and re-validate each redirect destination against the configured network capability list before following it. The upstream code fix is tracked in pull request https://github.com/surrealdb/surrealdb/pull/5597. If an immediate upgrade is not feasible, convert the network capability configuration from a deny-list to an explicit allowlist using 'surreal start --allow-net <trusted-cidr-only>' (or the SURREAL_CAPS_ALLOW_NET environment variable), permitting only the specific, fully trusted external endpoints the application actually calls - this eliminates the bypass vector entirely because no implicit broad access exists to redirect into. Be aware that switching to an allowlist will break any http::* calls to endpoints not explicitly listed, so auditing current usage before applying this workaround is necessary. The most conservative compensating control, if outbound HTTP calls are not required, is to start SurrealDB without any --allow-net flag, which disables the http::* capability entirely. Full advisory and workaround details are at https://github.com/surrealdb/surrealdb/security/advisories/GHSA-5q9x-554g-9jgg.

Share

EUVD-2025-210489 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy