Description
SurrealDB before v2.6.1 (and before v3.0.0-beta.3) contains a denial of service vulnerability in its embedded JavaScript scripting engine, which is enabled via the --allow-scripting capability (disabled by default). Any user able to execute arbitrary queries — including unauthenticated guests when --allow-guests is enabled — can use built-in string functions to construct a large string and pass it to the JavaScript runtime for compilation, triggering a null pointer dereference in the underlying QuickJS-NG engine. This causes the server process to terminate immediately without graceful shutdown, requiring a manual restart. The issue was fixed by updating the rquickjs dependency from v0.9.0 to v0.11.0.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| surrealdb | surrealdb | < 2.6.1, < 3.0.0-beta.3 | 2.6.1 |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| crates.io | surrealdb | < 2.6.1 | 2.6.1 | GHSA-xx7m-69ff-9crp |
| crates.io | surrealdb | >= 3.0.0-alpha.8, < 3.0.0-beta.3 | 3.0.0-beta.3 | GHSA-xx7m-69ff-9crp |
References
- GitHub Security Advisory (GHSA-xx7m-69ff-9crp) vendor-advisory
- VulnCheck Advisory: SurrealDB before v2.6.1 Denial of Service via scripting third-party-advisory