High

Budibase authenticated arbitrary S3 signed upload URL issuance via `/api/attachments/:datasourceId/url`

  • Disclosed: 26.08.2026
  • Updated: 11.10.2026 10:22

Summary

Budibase 3.39.7 allows a low-privilege authenticated published-app user with the built-in BASIC role to obtain arbitrary S3 pre-signed upload URLs backed by a workspace datasource's stored server-side credentials.

The affected endpoint is:

POST /api/attachments/:datasourceId/url

The caller can control:

bucket
key

and receives:

signedUrl
publicUrl

This lets a low-privilege published-app user mint S3 PUT URLs using server-side datasource credentials for attacker-chosen object destinations.

Steps:

  1. Log in as an admin user.
  2. Create a new app/workspace.
  3. In the development app context, create an S3 datasource with valid credentials.
  4. Publish the app.
  5. Create a low-privilege user with the built-in BASIC role on the published production app ID.
  6. Log in as that BASIC user.
  7. Send: POST /api/attachments/<datasourceId>/url

with:

js
{"bucket":"foo","key":"bar"}

and the published app header:

x-budibase-app-id: <published_app_id>

Observe a successful response containing:

signedUrl
publicUrl

Observed result

The following behavior:

dev BASIC request: 403 User does not have permission app publish: SUCCESS prod BASIC request: 200 OK Example confirmed runtime values from the final successful run:

prodAppId: app_e6b4cdc6cd6949969a83ff11eee88c5a
datasourceId: datasource_0cec491b26a742468257c62382aa3284
publicUrl: https://foo.s3.eu-west-1.amazonaws.com/bar

The returned signedUrl contained standard AWS signing markers, including:

X-Amz-Credential=bb
X-Amz-Signature
X-Amz-Expires=900

Impact

A low-privilege published-app user who knows a valid datasource ID can mint S3 upload URLs backed by server-side datasource credentials and choose arbitrary destination bucket and key values.

Route definition

packages/server/src/api/routes/static.ts:45 Authorization logic packages/server/src/middleware/authorized.ts packages/server/src/middleware/resourceId.ts Controller logic packages/server/src/api/controllers/static/index.ts Datasource lookup packages/server/src/sdk/workspace/datasources/datasources.ts

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
npm package @budibase/server <= 3.38.1 no fix

References

CVSS score 7.1/10
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
Weakness (CWE)
CWE-862
Platform
npm
Package
@budibase/server
Disclosed
26.08.2026
Updated
11.10.2026 10:22

Sources and licenses

OSV / GitHub Advisory Database - GHSA-6x9p-4r67-5gjx - CC BY 4.0

Vulnerability history: @budibase/server

All published vulnerabilities of this package (npm package), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (42) in the archive
Total entries
42
First → latest
03.2024 08.2026
Without a fix
19
Exploited in attacks
0

Severity breakdown

  • Critical 8
  • High 27
  • Medium 7

Disclosures per year

  1. 2024: 1
  2. 2025: 0
  3. 2026: 41
Severity:
  1. Budibase authenticated arbitrary S3 signed upload URL issuance via `/api/attachments/:datasourceId/url` this entry
    High · 7.1 CVE-2026-54356 <= 3.38.1 no fix
  2. High · 8.5 CVE-2026-73410 <= 3.38.1 no fix
  3. Critical · 9.6 CVE-2026-73300 <= 3.38.1 no fix
Show more (15) Showing 20 of 35

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.