NocoBase is an AI-powered no-code/low-code platform for building business applications and enterprise solutions. Prior to version 2.0.39, the queryParentSQL() function in the core database package constructs a recursive CTE query by joining nodeIds with string concatenation instead of using parameterized queries. The nodeIds array contains primary key values read from database rows. An attacker who can create a record with a malicious string primary key can inject arbitrary SQL when any subsequent request triggers recursive eager loading on that collection. This issue has been patched in version 2.0.39.
https://github.com/nocobase/nocobase/security/advisories/GHSA-4948-f92q-f432
https://github.com/nocobase/nocobase/releases/tag/v2.0.39
https://github.com/nocobase/nocobase/pull/9133
https://github.com/nocobase/nocobase/commit/202e2b8efe44ba90adbf1087f6f70881ff947604