GitHub Advisoryadvisory · npm

GHSA-mvvv-v22x-xqwp NocoBase has SSRF in Workflow HTTP Request and Custom Request Plugins

MEDIUM Published 2026-04-15 Modified 2026-05-14 Official page ↗
Aliases
CVE-2026-40346
Ecosystem
npm
Packages
@nocobase/plugin-workflow-request
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Weaknesses
CWE-918
Reviewed
2026-04-15

Affected packages

• npm @nocobase/plugin-workflow-request: < 2.0.37 → fixed in 2.0.37

Description

Summary NocoBase's workflow HTTP request plugin and custom request action plugin make server-side HTTP requests to user-provided URLs without any SSRF protection. An authenticated user can access internal network services, cloud metadata endpoints, and localhost. Vulnerable Code 1. Workflow HTTP Request Plugin `packages/plugins/@nocobase/plugin-workflow-request/src/server/RequestInstruction.ts` lines 117-128: ```typescript return axios.request({ url: trim(url), // User-controlled, no validation method, headers, params, timeout, ...(method.toLowerCase() !== 'get' && data != null ? { data: transformer ? await transformer(data) : data } : {}), }); ``` The `url` at line 98 comes directly from user workflow configuration with only whitespace trimming. 2. Custom Request Action Plugin `packages/plugins/@nocobase/plugin-action-custom-request/src/server/actions/send.ts` lines 172-198: ```typescript const axiosRequestConfig = { baseURL: ctx.origin, ...options, url: getParsedValue(url, variables), // User-controlled via template headers: { ... }, params: getParsedValue(arrayToObject(params), variables), data: getParsedValue(toJSON(data), variables), }; const res = await axios(axiosRequestConfig); // No IP validation ``` Missing Protections • No `request-filtering-agent` or SSRF library (confirmed via grep across entire codebase) • No private IP range filtering • No cloud metadata endpoint blocking • No URL scheme validation • No DNS rebinding protection Attack Scenario 1. Authenticated user creates a workflow with HTTP Request node 2. Sets URL to `http://169.254.169.254/latest/meta-data/iam/security-credentials/` 3. Triggers the workflow 4. Server fetches AWS metadata and returns IAM credentials in workflow execution logs Alternatively via Custom Request action: 1. Create custom request with URL `http://127.0.0.1:5432` or `http://10.0.0.1:8080/admin` 2. Execute the action 3. Server makes request to internal service Impact • Cloud metadata theft: AWS/GCP/Azure credentials via metadata endpoints • Internal network access: Scan and interact with services on private IP ranges • Database access: Connect to localhost databases (PostgreSQL, Redis, etc.) • Authentication required: Yes (authenticated user), but any workspace member can create workflows

Related

Alias · CVE (1)

  • CVE-2026-40346 NocoBase is an AI-powered no-code/low-code platform for building business applications and enterprise solutions. vulnerability

Weakness · CWE (1)

  • CWE-918 Server-Side Request Forgery weakness

References