Budibase authenticated arbitrary S3 signed upload URL issuance via `/api/attachments/:datasourceId/url`
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:
- Log in as an admin user.
- Create a new app/workspace.
- In the development app context, create an S3 datasource with valid credentials.
- Publish the app.
- Create a low-privilege user with the built-in BASIC role on the published production app ID.
- Log in as that BASIC user.
- Send:
POST /api/attachments/<datasourceId>/url
with:
{"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
Software afectado
Haz clic en una tecnología para ver todas sus vulnerabilidades.
| Plataforma | Paquete | Versiones vulnerables | Corregida en |
|---|---|---|---|
| Paquete de npm | @budibase/server | <= 3.38.1 | sin corrección |
Referencias
- Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L- Debilidad (CWE)
CWE-862- Plataforma
- npm
- Paquete
@budibase/server- Publicada
- 26.08.2026
- Actualizado
- 11.10.2026 10:22
Fuentes y licencias
OSV / GitHub Advisory Database - GHSA-6x9p-4r67-5gjx - CC BY 4.0
Historial de vulnerabilidades: @budibase/server
Todas las vulnerabilidades publicadas de este paquete (Paquete de npm), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.
- Entradas en total
- 42
- Primera → última
- 03.2024 08.2026
- Sin corrección
- 19
- Explotada en ataques
- 0
Distribución por gravedad
- Crítica 8
- Alta 27
- Media 7
Divulgaciones por año
- 2024: 1
- 2025: 0
- 2026: 41
-
Budibase authenticated arbitrary S3 signed upload URL issuance via `/api/attachments/:datasourceId/url` esta entrada
Identifica las vulnerabilidades de tu aplicación
Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.