{"items":[{"id":"NVI-00016404","kind":"vulnerability","title":"Budibase: SSRF in Automation Steps - Webhook, Zapier, N8N, Slack, Discord Bypass IP Blacklist","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-5fpj-28rv-84r7","CVE-2026-35219"],"plain_summary":"GitHub lists this reviewed advisory for @budibase/server. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-6e42e01e45b4fbe69b492c3664a81fcd"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-6e42e01e45b4fbe69b492c3664a81fcd","url":"https://github.com/advisories/GHSA-5fpj-28rv-84r7","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-5fpj-28rv-84r7","publisher":"GitHub Advisory Database","observed_at":"2026-11-02T20:16:47.162Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-6e42e01e45b4fbe69b492c3664a81fcd"],"technology":"@budibase/server","known_exclusions":[],"conditions_summary":"## Summary\n\nBudibase 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.\n\n## Vulnerable Code\n\n### Automation Steps (No Blacklist)\n\nAll automation steps use `fetch()` directly without any IP validation:\n\n**`packages/server/src/automations/steps/outgoingWebhook.ts` line 69:**\n```typescript\nconst response = await fetch(url, request)  // No blacklist check\n```\n\n**`packages/server/src/automations/steps/zapier.ts` line 34:**\n```typescript\nresponse = await fetch(url, {method: \"post\", ...})  // No blacklist check\n```\n\n**`packages/server/src/automations/steps/n8n.ts` line 53:**\n```typescript\nresponse = await fetch(url, request)  // No blacklist check\n```\n\n**`packages/server/src/automations/steps/slack.ts` line 20:**\n```typescript\nresponse = await fetch(url, {method: \"post\", ...})  // No blacklist check\n```\n\n**`packages/server/src/automations/steps/discord.ts` line 29:**\n```typescript\nresponse = awai","public_affected_ranges":["< 3.41.3"]}],"null_published_at":"2026-11-04T10:04:27.941Z","source_updated_at":"2026-08-14T19:18:47.000Z","source_disclosed_at":"2026-08-14T19:18:47.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-11-02T20:16:47.162Z"}],"next_cursor":null,"snapshot_revision":"42594"}