{"api_version":"1","generated_at":"2026-07-18T22:42:02+00:00","cve":"CVE-2025-71393","urls":{"html":"https://cve.report/CVE-2025-71393","api":"https://cve.report/api/cve/CVE-2025-71393.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2025-71393","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2025-71393"},"summary":{"title":"SurrealDB before 2.2.2 Memory Exhaustion via Nested Functions","description":"SurrealDB before 2.2.2 with scripting enabled fails to properly enforce recursion limits when native functions contain embedded JavaScript that issues new queries. Authenticated attackers can bypass the recursion limit by chaining native and JavaScript function calls to trigger infinite recursion and exhaust server memory.","state":"PUBLISHED","assigner":"VulnCheck","published_at":"2026-07-18 14:17:10","updated_at":"2026-07-18 14:17:10"},"problem_types":["CWE-674","CWE-674 Uncontrolled Recursion"],"metrics":[{"version":"4.0","source":"disclosure@vulncheck.com","type":"Secondary","score":"6","severity":"MEDIUM","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/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","data":{"version":"4.0","vectorString":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/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","baseScore":6,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"PRESENT","privilegesRequired":"LOW","userInteraction":"NONE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","vulnAvailabilityImpact":"HIGH","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","exploitMaturity":"NOT_DEFINED","confidentialityRequirement":"NOT_DEFINED","integrityRequirement":"NOT_DEFINED","availabilityRequirement":"NOT_DEFINED","modifiedAttackVector":"NOT_DEFINED","modifiedAttackComplexity":"NOT_DEFINED","modifiedAttackRequirements":"NOT_DEFINED","modifiedPrivilegesRequired":"NOT_DEFINED","modifiedUserInteraction":"NOT_DEFINED","modifiedVulnConfidentialityImpact":"NOT_DEFINED","modifiedVulnIntegrityImpact":"NOT_DEFINED","modifiedVulnAvailabilityImpact":"NOT_DEFINED","modifiedSubConfidentialityImpact":"NOT_DEFINED","modifiedSubIntegrityImpact":"NOT_DEFINED","modifiedSubAvailabilityImpact":"NOT_DEFINED","Safety":"NOT_DEFINED","Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","valueDensity":"NOT_DEFINED","vulnerabilityResponseEffort":"NOT_DEFINED","providerUrgency":"NOT_DEFINED"}},{"version":"4.0","source":"CNA","type":"CVSS","score":"6","severity":"MEDIUM","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","data":{"attackComplexity":"LOW","attackRequirements":"PRESENT","attackVector":"NETWORK","baseScore":6,"baseSeverity":"MEDIUM","privilegesRequired":"LOW","subAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","userInteraction":"NONE","vectorString":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","version":"4.0","vulnAvailabilityImpact":"HIGH","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE"}}],"references":[{"url":"https://github.com/surrealdb/surrealdb/security/advisories/GHSA-m7rc-8w7m-r9qr","name":"https://github.com/surrealdb/surrealdb/security/advisories/GHSA-m7rc-8w7m-r9qr","refsource":"disclosure@vulncheck.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.vulncheck.com/advisories/surrealdb-before-memory-exhaustion-via-nested-functions","name":"https://www.vulncheck.com/advisories/surrealdb-before-memory-exhaustion-via-nested-functions","refsource":"disclosure@vulncheck.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2025-71393","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-71393","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"surrealdb","product":"surrealdb","version":"affected 2.2.2 semver","platforms":[]},{"source":"CNA","vendor":"surrealdb","product":"surrealdb","version":"unaffected 2.2.2 semver","platforms":[]},{"source":"CNA","vendor":"surrealdb","product":"surrealdb","version":"affected 2.1.5 semver","platforms":[]},{"source":"CNA","vendor":"surrealdb","product":"surrealdb","version":"unaffected 2.1.5 semver","platforms":[]},{"source":"CNA","vendor":"surrealdb","product":"surrealdb","version":"affected 2.0.5 semver","platforms":[]},{"source":"CNA","vendor":"surrealdb","product":"surrealdb","version":"unaffected 2.0.5 semver","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"CNA","value":"cure53","lang":"en"}],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","packageURL":"pkg:cargo/SurrealDB","product":"surrealdb","vendor":"surrealdb","versions":[{"lessThan":"2.2.2","status":"affected","version":"0","versionType":"semver"},{"status":"unaffected","version":"2.2.2","versionType":"semver"}]},{"defaultStatus":"unaffected","packageURL":"pkg:cargo/SurrealDB","product":"surrealdb","vendor":"surrealdb","versions":[{"lessThan":"2.1.5","status":"affected","version":"0","versionType":"semver"},{"status":"unaffected","version":"2.1.5","versionType":"semver"}]},{"defaultStatus":"unaffected","packageURL":"pkg:cargo/SurrealDB","product":"surrealdb","vendor":"surrealdb","versions":[{"lessThan":"2.0.5","status":"affected","version":"0","versionType":"semver"},{"status":"unaffected","version":"2.0.5","versionType":"semver"}]}],"credits":[{"lang":"en","type":"reporter","value":"cure53"}],"datePublic":"2025-04-10T00:00:00.000Z","descriptions":[{"lang":"en","value":"SurrealDB before 2.2.2 with scripting enabled fails to properly enforce recursion limits when native functions contain embedded JavaScript that issues new queries. Authenticated attackers can bypass the recursion limit by chaining native and JavaScript function calls to trigger infinite recursion and exhaust server memory."}],"metrics":[{"cvssV4_0":{"attackComplexity":"LOW","attackRequirements":"PRESENT","attackVector":"NETWORK","baseScore":6,"baseSeverity":"MEDIUM","privilegesRequired":"LOW","subAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","userInteraction":"NONE","vectorString":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","version":"4.0","vulnAvailabilityImpact":"HIGH","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE"},"format":"CVSS"}],"problemTypes":[{"descriptions":[{"cweId":"CWE-674","description":"Uncontrolled Recursion","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-07-18T13:10:12.360Z","orgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","shortName":"VulnCheck"},"references":[{"name":"GitHub Security Advisory (GHSA-m7rc-8w7m-r9qr)","tags":["vendor-advisory"],"url":"https://github.com/surrealdb/surrealdb/security/advisories/GHSA-m7rc-8w7m-r9qr"},{"name":"VulnCheck Advisory: SurrealDB before 2.2.2 Memory Exhaustion via Nested Functions","tags":["third-party-advisory"],"url":"https://www.vulncheck.com/advisories/surrealdb-before-memory-exhaustion-via-nested-functions"}],"title":"SurrealDB before 2.2.2 Memory Exhaustion via Nested Functions","x_generator":{"engine":"vulncheck-endgame"}}},"cveMetadata":{"assignerOrgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","assignerShortName":"VulnCheck","cveId":"CVE-2025-71393","datePublished":"2026-07-18T13:10:12.360Z","dateReserved":"2026-07-16T12:14:41.770Z","dateUpdated":"2026-07-18T13:10:12.360Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-07-18 14:17:10","lastModifiedDate":"2026-07-18 14:17:10","problem_types":["CWE-674","CWE-674 Uncontrolled Recursion"],"metrics":{"cvssMetricV40":[{"source":"disclosure@vulncheck.com","type":"Secondary","cvssData":{"version":"4.0","vectorString":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/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","baseScore":6,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"PRESENT","privilegesRequired":"LOW","userInteraction":"NONE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","vulnAvailabilityImpact":"HIGH","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","exploitMaturity":"NOT_DEFINED","confidentialityRequirement":"NOT_DEFINED","integrityRequirement":"NOT_DEFINED","availabilityRequirement":"NOT_DEFINED","modifiedAttackVector":"NOT_DEFINED","modifiedAttackComplexity":"NOT_DEFINED","modifiedAttackRequirements":"NOT_DEFINED","modifiedPrivilegesRequired":"NOT_DEFINED","modifiedUserInteraction":"NOT_DEFINED","modifiedVulnConfidentialityImpact":"NOT_DEFINED","modifiedVulnIntegrityImpact":"NOT_DEFINED","modifiedVulnAvailabilityImpact":"NOT_DEFINED","modifiedSubConfidentialityImpact":"NOT_DEFINED","modifiedSubIntegrityImpact":"NOT_DEFINED","modifiedSubAvailabilityImpact":"NOT_DEFINED","Safety":"NOT_DEFINED","Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","valueDensity":"NOT_DEFINED","vulnerabilityResponseEffort":"NOT_DEFINED","providerUrgency":"NOT_DEFINED"}}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2025","CveId":"71393","Ordinal":"1","Title":"SurrealDB before 2.2.2 Memory Exhaustion via Nested Functions","CVE":"CVE-2025-71393","Year":"2025"},"notes":[{"CveYear":"2025","CveId":"71393","Ordinal":"1","NoteData":"SurrealDB before 2.2.2 with scripting enabled fails to properly enforce recursion limits when native functions contain embedded JavaScript that issues new queries. Authenticated attackers can bypass the recursion limit by chaining native and JavaScript function calls to trigger infinite recursion and exhaust server memory.","Type":"Description","Title":"SurrealDB before 2.2.2 Memory Exhaustion via Nested Functions"}]}}}