Budibase Authentication Bypass in S3 Attachment Endpoint
An authorization vulnerability in Budibase <= 3.38.1 allows authenticated low-privileged users to generate arbitrary S3 pre-signed upload URLs using server-side datasource credentials.
CVE search metadata
CVE search record: CVE-2026-54356. Severity: high. CVSS: 7.1. EPSS: 0.24%. KEV: no. Product: Budibase Server (<= 3.38.1). Brief: Budibase Authentication Bypass in S3 Attachment Endpoint. Brief link: https://feed.craftedsignal.io/briefs/2026-08-budibase-s3-auth-bypass/
Budibase version 3.38.1 and earlier contains an authorization bypass vulnerability (CVE-2026-54356) that affects the /api/attachments/:datasourceId/url endpoint. Research confirms that while the development environment correctly enforces role-based access control, the published production environment fails to properly validate the 'BASIC' role permissions. An authenticated user assigned to a published application can invoke this endpoint to generate pre-signed S3 PUT URLs.
Because the underlying application logic uses configured server-side datasource credentials to generate these URLs, the attacker can force the application to issue credentials for arbitrary S3 buckets and keys. This allows a low-privileged user to potentially upload, overwrite, or manipulate objects in storage environments accessible to the application's service principal or stored IAM credentials, effectively escalating their impact beyond the application's intended scope.
Attack Chain
- Attacker authenticates to a published Budibase application as a low-privileged user with the 'BASIC' role.
- Attacker enumerates or identifies a valid
datasourceIdassociated with an S3-compatible storage integration. - Attacker sends a
POSTrequest to/api/attachments/<datasourceId>/urltargeting the vulnerable endpoint. - Attacker includes the required application headers, specifically
x-budibase-app-id, to bypass initial routing constraints. - Attacker provides a JSON payload containing their chosen
bucketandkeyvalues for the target S3 path. - The application performs an insufficient authorization check in
packages/server/src/middleware/authorized.ts. - The server generates a pre-signed
PUTURL using the backend S3 credentials and returns it to the attacker. - Attacker utilizes the signed URL to perform unauthorized file write operations against the target S3 infrastructure.
Impact
The vulnerability allows unauthorized users to mint S3 upload credentials by leveraging the application's server-side identity. This enables unauthorized modification or injection of files into S3 buckets accessible by the application's configured credentials. Successful exploitation could lead to data integrity compromise or, if the application serves uploaded content, stored Cross-Site Scripting (XSS) or arbitrary code execution via file upload, depending on the downstream handling of the S3 objects.
Recommendation
- Upgrade Budibase to version 3.39.7 or later to implement proper authorization checks on the attachment API.
- Audit S3 bucket policies for all datasources configured in Budibase to enforce the principle of least privilege, ensuring the application credentials cannot perform writes to unauthorized paths.
- Deploy webserver logs monitoring for
POSTrequests to/api/attachments/*/urlthat originate from users with the 'BASIC' role or other low-privilege accounts, and cross-reference these with subsequent outbound traffic to AWS S3 endpoints.
Immediate actions
Upgrade Budibase to 3.39.7 or later
Threat Hunt
Search logs for POST requests to /api/attachments/ endpoint from low-privilege users
Data: webserver_logs
Mitigations
Restrict S3 bucket policy permissions to the minimum necessary
CVE-2026-54356
Detection coverage 1
Detect Potential Unauthorized S3 URL Issuance - Budibase
highDetects unauthorized POST requests to the Budibase attachments API which could indicate exploitation of CVE-2026-54356.
Detection queries are available on the platform. Get full rules →