Executive brief
Budibase is a low-code platform for building business applications. The AI table generation feature allows authenticated users to generate table rows using language models, including attachment columns. An attacker with builder-level access can exploit a server-side request forgery (SSRF) vulnerability in the uploadUrl() function to fetch arbitrary URLs from the server, potentially exposing internal services, cloud metadata endpoints (such as AWS IAM credentials), or other sensitive network resources.
Technical details
The vulnerability exists in the uploadUrl() function (packages/server/src/utilities/fileUtils.ts) which uses a bare fetch() call without SSRF protection. During AI table generation, when the LLM generates attachment column values as URLs, the processAttachments() function calls uploadUrl() to fetch these URLs server-side without blacklist validation. An attacker can craft prompts that cause the LLM to generate internal IP addresses or cloud metadata endpoints (e.g., 169.254.169.254) as attachment URLs. The attack requires builder-level authentication and AI feature enablement. The fix replaces bare fetch() with fetchWithBlacklist(), which validates URLs against a blacklist of private/internal IP ranges before making requests, consistent with other Budibase code paths that correctly use fetchWithBlacklist().
Affected products
- Budibase Budibase <3.40.0
Timeline
- 2026-07-24: disclosed
- 2026-07-22: patched: Version 3.40.0 released with fix
- 2026-07-24: advisory: GitHub Advisory GHSA-hfhx-w8p8-4hc7 published