Server: Budibase: SSRF in Automation Steps - Webhook, Zapier, N8N, Slack, Discord Bypass IP Blacklist (CVE-2026-35219)
## Summary Budibase automation steps (outgoing webhook, Zapier, n8n, Slack, Discord, Make.com) make server-side HTTP requests to user-provided URLs using `node-fetch` directly, completely bypassing the IP blacklist protection that exists in the REST API integration. Additionally, the REST API blacklist itself defaults to empty when `BLACKLIST_IPS` is not configured. ## Vulnerable Code ### Automation Steps (No Blacklist) All automation steps use `fetch()` directly without any IP validation: **`packages/server/src/automations/steps/outgoingWebhook.ts` line 69:** ```typescript const response = await fetch(url, request) // No blacklist check ``` **`packages/server/src/automations/steps/zapier.ts` line 34:** ```typescript response = await fetch(url, {method: "post", ...}) // No blacklist check ``` **`packages/server/src/automations/steps/n8n.ts` line 53:** ```typescript response = await fetch(url, request) // No blacklist check ``` **`packages/server/src/automations/steps/slack.ts` line 20:** ```typescript response = await fetch(url, {method: "post", ...}) // No blacklist check ``` **`packages/server/src/automations/steps/discord.ts` line 29:** ```typescript response = await fetch(url, {method: "post", ...}) // No blacklist check ``` ### REST API Integration (Empty Default Blacklist) **`packages/server/src/integrations/rest.ts` line 684:** ```typescript if (await blacklist.isBlacklisted(url)) { throw new Error("Cannot connect to URL.") } ``` But `BLACKLIST_IPS` env var defaults to undefined, so the blacklist is empty: **`packages/backend-core/src/blacklist/blacklist.ts` lines 39-45:** ```typescript if (blackListArray?.length === 0) { return false // Always passes when no IPs configured } ``` ## Impact - **Automation steps**: ANY user can create automations with webhook/Zapier/n8n/Slack/Discord steps pointing to internal IPs. These completely bypass the blacklist module - **REST API**: Even when BLACKLIST_IPS is configured, it only blocks listed IPs. Default deployments have no protection. - **Cloud metadata**: `http://169.254.169.254/latest/meta-data/` accessible via any automation step - **Internal services**: Access databases, admin panels, Kubernetes API on private IPs ## Remediation 1. Apply blacklist checks to ALL outbound HTTP requests, including automation steps 2. Add hardcoded default private IP ranges (127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16) 3. Use a centralized HTTP client wrapper instead of direct `fetch()` calls 4. SSRF protection should be on by default, not opt-in via environment variable
AI Analysis
Technical Summary
Budibase automation steps perform server-side HTTP requests using node-fetch directly without validating or applying IP blacklist checks, unlike the REST API integration which does apply blacklist checks but defaults to an empty blacklist if BLACKLIST_IPS is not set. This SSRF vulnerability allows any user to create automations that send requests to internal IP addresses, including cloud metadata endpoints (e.g., 169.254.169.254) and private network services such as databases, admin panels, and Kubernetes APIs. The vulnerability affects Budibase server versions prior to 3.41.3. The recommended remediation includes applying blacklist checks to all outbound HTTP requests, adding hardcoded private IP ranges to the blacklist, centralizing HTTP client usage, and enabling SSRF protection by default.
Potential Impact
An attacker can exploit this vulnerability to perform SSRF attacks via automation steps, bypassing IP blacklist protections. This can lead to unauthorized access to internal network resources, cloud metadata services, and potentially sensitive internal infrastructure. Default deployments without configured BLACKLIST_IPS have no IP blacklist protection, increasing exposure. The vulnerability does not require user interaction and can be triggered by any user able to create automation steps.
Mitigation Recommendations
A patch is available for Budibase server to address this SSRF vulnerability. Users should upgrade to version 3.41.3 or later where blacklist checks are applied to all outbound HTTP requests, including automation steps. Additionally, hardcoded private IP ranges should be blocked by default, and a centralized HTTP client wrapper should be used to enforce SSRF protections consistently. Until patched, users should avoid creating automation steps that call user-supplied URLs and configure BLACKLIST_IPS environment variable with private IP ranges as a temporary mitigation.
Server: Budibase: SSRF in Automation Steps - Webhook, Zapier, N8N, Slack, Discord Bypass IP Blacklist (CVE-2026-35219)
Description
## Summary Budibase automation steps (outgoing webhook, Zapier, n8n, Slack, Discord, Make.com) make server-side HTTP requests to user-provided URLs using `node-fetch` directly, completely bypassing the IP blacklist protection that exists in the REST API integration. Additionally, the REST API blacklist itself defaults to empty when `BLACKLIST_IPS` is not configured. ## Vulnerable Code ### Automation Steps (No Blacklist) All automation steps use `fetch()` directly without any IP validation: **`packages/server/src/automations/steps/outgoingWebhook.ts` line 69:** ```typescript const response = await fetch(url, request) // No blacklist check ``` **`packages/server/src/automations/steps/zapier.ts` line 34:** ```typescript response = await fetch(url, {method: "post", ...}) // No blacklist check ``` **`packages/server/src/automations/steps/n8n.ts` line 53:** ```typescript response = await fetch(url, request) // No blacklist check ``` **`packages/server/src/automations/steps/slack.ts` line 20:** ```typescript response = await fetch(url, {method: "post", ...}) // No blacklist check ``` **`packages/server/src/automations/steps/discord.ts` line 29:** ```typescript response = await fetch(url, {method: "post", ...}) // No blacklist check ``` ### REST API Integration (Empty Default Blacklist) **`packages/server/src/integrations/rest.ts` line 684:** ```typescript if (await blacklist.isBlacklisted(url)) { throw new Error("Cannot connect to URL.") } ``` But `BLACKLIST_IPS` env var defaults to undefined, so the blacklist is empty: **`packages/backend-core/src/blacklist/blacklist.ts` lines 39-45:** ```typescript if (blackListArray?.length === 0) { return false // Always passes when no IPs configured } ``` ## Impact - **Automation steps**: ANY user can create automations with webhook/Zapier/n8n/Slack/Discord steps pointing to internal IPs. These completely bypass the blacklist module - **REST API**: Even when BLACKLIST_IPS is configured, it only blocks listed IPs. Default deployments have no protection. - **Cloud metadata**: `http://169.254.169.254/latest/meta-data/` accessible via any automation step - **Internal services**: Access databases, admin panels, Kubernetes API on private IPs ## Remediation 1. Apply blacklist checks to ALL outbound HTTP requests, including automation steps 2. Add hardcoded default private IP ranges (127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16) 3. Use a centralized HTTP client wrapper instead of direct `fetch()` calls 4. SSRF protection should be on by default, not opt-in via environment variable
CVSS v4.0
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
Budibase automation steps perform server-side HTTP requests using node-fetch directly without validating or applying IP blacklist checks, unlike the REST API integration which does apply blacklist checks but defaults to an empty blacklist if BLACKLIST_IPS is not set. This SSRF vulnerability allows any user to create automations that send requests to internal IP addresses, including cloud metadata endpoints (e.g., 169.254.169.254) and private network services such as databases, admin panels, and Kubernetes APIs. The vulnerability affects Budibase server versions prior to 3.41.3. The recommended remediation includes applying blacklist checks to all outbound HTTP requests, adding hardcoded private IP ranges to the blacklist, centralizing HTTP client usage, and enabling SSRF protection by default.
Potential Impact
An attacker can exploit this vulnerability to perform SSRF attacks via automation steps, bypassing IP blacklist protections. This can lead to unauthorized access to internal network resources, cloud metadata services, and potentially sensitive internal infrastructure. Default deployments without configured BLACKLIST_IPS have no IP blacklist protection, increasing exposure. The vulnerability does not require user interaction and can be triggered by any user able to create automation steps.
Mitigation Recommendations
A patch is available for Budibase server to address this SSRF vulnerability. Users should upgrade to version 3.41.3 or later where blacklist checks are applied to all outbound HTTP requests, including automation steps. Additionally, hardcoded private IP ranges should be blocked by default, and a centralized HTTP client wrapper should be used to enforce SSRF protections consistently. Until patched, users should avoid creating automation steps that call user-supplied URLs and configure BLACKLIST_IPS environment variable with private IP ranges as a temporary mitigation.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-5fpj-28rv-84r7
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-35219"]
- Ecosystems
- ["npm"]
- Database Specific Severity
- HIGH
- Cvss Version
- 4.0
Threat ID: 6a7ff5f8bf8831d5398801f0
Added to database: 08/15/2026, 05:15:36 UTC
Last enriched: 08/15/2026, 05:41:26 UTC
Last updated: 08/15/2026, 18:11:54 UTC
Views: 5
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.