The critical vulnerability in Budibase (CVE-2026-73305, CVSS 8.8) stems from a missing appId scope check in the validateGlobalRoleUpdate function, which allowed any user with app-scoped permissions to assign global roles and traverse across applications. This isn't a novel bug — it's the same authorization boundary failure pattern documented in CVE-2023-4312 and CVE-2021-3281 across other low-code platforms. The platform's conceptual model correctly distinguished between 'app-scoped' and 'global' capabilities in documentation and UI, but the API layer didn't enforce it consistently.
The endpoint /api/public/v1/roles/assign is the visible signal: a global role operation living under a 'public' namespace suggests developers conflated 'externally callable' with 'unauthenticated' or assumed caller context provided implicit validation. The EPSS score of 0.00368 likely understates risk because it doesn't model low-code platform dynamics — non-technical builders are exactly the population that would pragmatically use a roles/assign endpoint when hitting permissions boundaries, meaning accidental exposure compounds intentional exploitation.
Immediate actions: First, verify your Budibase version. The fix landed in 3.39.24 — upgrade there or later. Second, audit your /api/public/v1/ endpoints for similar missing appId checks on operations that should be global-only. Third, review audit logs for any role assignment calls from non-admin accounts during the vulnerable window. If you're on a pre-3.39.24 instance, assume cross-app traversal occurred and rotate credentials across connected datasources.
The deeper question: was this a surgical fix or a systemic one? The vulnerability is fixed in 3.39.24, but the design impulse that created a 'public' endpoint for global role operations may still exist elsewhere in the codebase. The pattern — authorization logic documented but not fully wired in the API layer — is recurrent across low-code platforms. Treat this CVE as a prompt to audit your entire public API surface, not just this one function.