CVE-2024-58362

Summary

SurrealDB before 1.5.5 (and 2.0.0-beta before 2.0.0-beta.3) accepts an arbitrary object in the signin and signup operations of the RPC API without recursively validating it for non-computed values. When a record access method defines a SIGNIN or SIGNUP query and the RPC API is exposed to untrusted users, an unauthenticated attacker can encode a binary object containing a subquery using the bincode serialization format and supply it in place of credentials. The subquery is then executed within the database owner's SIGNIN/SIGNUP query under a system user session with the editor role, allowing the attacker to select, create, update, and delete non-IAM resources (though not view the query results directly, and not affect IAM resources, which require the owner role).

Affected Software

VendorProductVersion RangeStatus
surrealdbsurrealdb0 < 1.5.5, 2.0.0-beta.3affected
surrealdbsurrealdb1.5.5, 2.0.0-beta.3unaffected
surrealdbsurrealdb0 < 1.5.2affected
surrealdbsurrealdb1.5.2unaffected

Weaknesses

  • CWE-75: Failure to Sanitize Special Elements into a Different Plane (Special Element Injection)

References