Severity by source
AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
DNS rebinding requires attacker-controlled infrastructure and precise timing (AC:H); builder-level authentication is mandatory (PR:L); internal service access constitutes a scope change (S:C) with full C/I/A impact on cloud credentials and datastores.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
4DescriptionCVE.org
Budibase is an open-source low-code platform. Prior to 3.40.0, packages/backend-core/src/utils/outboundFetch.ts pinned a validated address through a Node agent, but the REST integration used getDispatcher from packages/backend-core/src/utils/fetch.ts, causing undici to ignore that agent and resolve the hostname again. A builder could use DNS rebinding to make packages/server/src/integrations/rest.ts connect to an internal address after a public address passed validation, with full response access and arbitrary REST methods. The fix adds createPinnedLookup support to the undici dispatcher and passes the validated address to custom fetch implementations. This issue is fixed in version 3.40.0.
AnalysisAI
SSRF via DNS rebinding in Budibase's REST datasource integration (versions prior to 3.40.0) lets an authenticated builder or tenant bypass the outbound-fetch IP blacklist by exploiting a TOCTOU gap between hostname validation and undici's independent DNS re-resolution at connection time. Because the REST integration overrides the transport with undici's fetch, the validated Node.js agent pin established by the prior CVE-2026-54353 fix is silently ignored, leaving the single most-used outbound path in Budibase unprotected. An attacker who can configure a REST datasource can reach cloud instance-metadata endpoints to steal IAM credentials, or read from and write to internal services such as CouchDB, Redis, and MinIO with full HTTP method and response access. No public exploit has been identified at time of analysis.
Technical ContextAI
Budibase's central outbound-fetch guard (fetchWithBlacklist in packages/backend-core/src/utils/outboundFetch.ts) resolves a target hostname, validates every resolved IP against an SSRF blacklist, and pins the validated address into a custom Node.js http.Agent/https.Agent via makePinnedAgent, whose overridden lookup function always returns the vetted IP. This pin was the core of the CVE-2026-54353 fix. The REST datasource integration (packages/server/src/integrations/rest.ts) overrides the fetch transport with undici's fetch, which does not honour the Node agent option - it is silently dropped. Undici instead uses its own dispatcher (via getDispatcher), which performs a completely independent DNS resolution at connection time. This creates a textbook CWE-367 (Time-of-check Time-of-use) race: the check phase resolves the hostname and validates the IP, while the use phase re-resolves it through an entirely separate code path with no memory of the validated address. An attacker who controls their domain's DNS TTL can serve a public IP during the check phase and switch to an internal RFC-1918 or link-local address (e.g., 169.254.169.254) before the undici dispatcher connects. The fix introduces createPinnedLookup as an exported function and threads the validated IP into a custom undici dispatcher so both Node-fetch and undici paths receive a pinned lookup. The affected CPE is cpe:2.3:a:budibase:budibase:*:*:*:*:*:*:*:* for all versions prior to 3.40.0.
RemediationAI
Upgrade Budibase to version 3.40.0 or later, which exports createPinnedLookup from outboundFetch.ts and passes the validated IP into undici's custom dispatcher so both transport paths use the same pinned address, closing the TOCTOU window. The fix commit is 5758bdb242802ca20c4ed0dc579e4330ee898ef3 and the vendor advisory is at https://github.com/Budibase/budibase/security/advisories/GHSA-v42f-v8xc-j435; note that the GHSA package record shows 'fixed in: None' for npm/@budibase/server <= 3.38.1, which conflicts with the CVE description citing 3.40.0 - verify the exact patched release against the official npm registry before deploying. If an immediate upgrade is not feasible, restrict the builder and tenant roles so that only fully trusted internal users can configure or execute REST datasources, as this removes the low-privilege account vector the attack depends on. As a network-layer compensating control, configure egress firewall rules or cloud security groups to block outbound HTTP/HTTPS from the Budibase server process to RFC 1918 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) and the link-local metadata address (169.254.169.254); be aware that this will also block any legitimate REST datasources that intentionally target internal endpoints. For cloud deployments specifically, blocking or null-routing 169.254.169.254 at the hypervisor or VPC level provides a high-value, low-disruption mitigation for the credential-theft vector.
Unauthorized data access in Budibase low-code platform before 3.30.4 allows unauthenticated users to manipulate internal
SQL injection in Budibase's MySQL integration (all versions prior to 3.40.0) lets attackers execute arbitrary, stacked S
Authorization bypass in Budibase 3.31.4 and earlier. The authorized() middleware can be bypassed, enabling injection att
Budibase is a low code platform for creating internal tools, workflows, and admin panels. [CVSS 8.8 HIGH]
Unauthenticated user enumeration and metadata disclosure in Budibase prior to 3.39.32 exposes tenant identifiers, email
Server-Side Request Forgery (SSRF) in Budibase's REST datasource connector (versions prior to 3.33.4) allows authenticat
OAuth2 access and refresh token theft in Budibase's automation testing pipeline exposes SSO-authenticated builder creden
Improper Control of Dynamically-Managed Code Resources in GitHub repository budibase/budibase prior to 1.3.20. Rated med
Path traversal in Budibase low-code platform 3.31.5 and earlier allows attackers to read arbitrary files through the app
Remote code execution in Budibase self-hosted server before 3.41.3 lets authenticated administrators run arbitrary JavaS
Account enumeration and targeted denial-of-service in Budibase prior to 3.39.25 stem from an observable response discrep
Unauthenticated account takeover of pending invited users in Budibase Server (@budibase/server) versions 3.41.0 through
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-60380
GHSA-v42f-v8xc-j435