Description
SurrealDB 2.0.0 before 3.3.1 does not enforce --deny-funcs restrictions on method-style function calls in the streaming engine, because MethodPart::evaluate invokes resolved functions without a capability check. Authenticated users who can submit queries can run denied functions via method syntax, e.g. [1,2].map() or $f.put()/$f.get() to write and read file bucket data despite file::* denials.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| surrealdb | surrealdb | 2.0.0 – < 3.3.1 | 3.3.1 |
References
- GitHub Security Advisory (GHSA-p296-7pr4-87rr) vendor-advisory
- VulnCheck Advisory: SurrealDB 2.0.0 before 3.3.1 deny-funcs Capability Bypass via Method-Style Invocations third-party-advisory