Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as BASIC Budibase user
-
DeliveryDiscover valid S3 datasource ID from app API responses
-
ExploitPOST crafted request to /api/attachments/<datasourceId>/url with attacker-chosen bucket and key
-
ExecutionReceive valid S3 PutObject presigned URL
-
ImpactUpload arbitrary content directly to target S3 bucket
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must hold a BASIC user account on the target Budibase application - the lowest authenticated role available. They must know or discover a valid S3 datasource ID associated with the app (obtainable from API responses visible to BASIC users during normal platform use) and the app's |
| Impact | The CVSS 4.0 score of 8.3 with vector AV:N/AC:L/AT:N/PR:L/UI:N reflects a network-accessible, low-complexity attack requiring only a BASIC user account - the lowest authenticated tier on the platform. The SI:H (subsequent system integrity: high) metric captures the key risk: attackers can write arbitrary content to S3 buckets beyond the Budibase system itself, scoped only by the IAM credentials stored in the platform. This is a concrete, high-value primitive - HTML, script, or binary files uploaded to S3 buckets could serve as a staging mechanism for phishing, malware distribution, or data tampering in downstream systems depending on how those buckets are used. There is no KEV listing and no standalone public exploit tool, reducing urgency versus an actively-exploited 0-day. However, the GHSA advisory provides a verbatim reproduction recipe, lowering the bar to exploitation to near zero for any authenticated user. EPSS data is not provided in the input. Risk is highest for Budibase deployments where BASIC user accounts are granted to untrusted or external parties and where the stored IAM credentials scope is broad - both common in multi-tenant or SaaS-style deployments. Risk is lower where BASIC access is restricted to fully trusted internal users or where IAM credentials are narrowly scoped per datasource bucket. |
| Exploit ScenarioDerived | An external contractor with a BASIC user account on a Budibase deployment discovers a valid S3 datasource ID by enumerating application API responses or inspecting browser network traffic during normal platform use. They craft a POST request to |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 14, 2026
Authorization regression in Budibase v3.39.4 enables any authenticated BASIC user to generate S3 PutObject presigned URLs for arbitrary S3 buckets, bypassing the intended BUILDER-level permission gate on the attachment upload endpoint. The regression introduced in v3.39.4 - where the route guard was changed from authorized(BUILDER) to authorized(PermissionType.TABLE, PermissionLevel.WRITE) - gives all default BASIC users access to an endpoint that was explicitly restricted to builders. Compounding the issue, the endpoint accepts an attacker-controlled bucket parameter without validating it against the datasource's configured bucket, allowing writes to any S3 bucket reachable by the platform's stored IAM credentials. No public exploit tool exists at time of analysis, but the official GHSA advisory publishes complete reproduction steps and the test suite confirms the behavior, making exploitation trivial for any authenticated platform user.
RemediationAI
The primary remediation is to upgrade Budibase server to version 3.40.0 or later per the CVE description, which covers the fix for the v3.39.4 regression. Verify against the official GHSA advisory at https://github.com/Budibase/budibase/security/advisories/GHSA-xcx6-4f2g-hhgx, as the npm package data included in this analysis lists 'fixed in: None' - this should be independently verified before assuming 3.40.0 is patched. The GHSA advisory identifies three specific code-level fixes required: restoring authorized(BUILDER) middleware on the /api/attachments/:datasourceId/url route, adding paramResource('datasourceId') to bind the datasource to the caller's app, and pinning the target S3 bucket to datasource.config.bucket in the controller rather than accepting a caller-supplied value. If immediate upgrade is not possible, a compensating control is to revoke BASIC user access from any untrusted users or externally-facing accounts - this eliminates the attacker's foothold but reduces platform usability. Additionally, narrowing the IAM credentials stored per S3 datasource to write access on only the specific bucket used by that datasource will limit the blast radius even if the endpoint is abused, at the cost of requiring IAM credential rotation per datasource.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Budibase is an open-source low-code platform (npm/@budibase/server) that integrates with external storage via S3 datasources. The affected endpoint POST /api/attachments/:datasourceId/url generates S3 PutObject presigned URLs - time-limited signed tokens that allow a bearer to upload directly to S3 without additional AWS credentials. In v3.39.3, this route was protected by authorized(BUILDER), requiring a user with builder-level access to the application. In v3.39.4 (CPE: cpe:2.3:a:budibase:server:*:*:*:*:*:*:*:*), the middleware was changed to authorized(PermissionType.TABLE, PermissionLevel.WRITE), which BASIC users hold by default. The controller at packages/server/src/api/controllers/static/index.ts:614-632 passes the caller-supplied bucket field directly to getSignedUrl without pinning it to datasource.config.bucket, enabling bucket-scope escape. The root cause class is CWE-863 (Incorrect Authorization) - the system performs an authorization check, but the wrong permission level is enforced, granting access to a broader audience than intended.
Know when Budibase gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/SA:N
Network-accessible endpoint requiring only BASIC user auth (PR:L); scope change (S:C) because attacker writes to external S3 buckets beyond the Budibase system; integrity-only impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Budibase versions 3.39.4 before 3.40.0 contain an authorization regression in the S3 attachment upload endpoint that allows BASIC users to obtain S3 PutObject presigned URLs by sending POST requests to the attachments endpoint. The route was changed from a BUILDER permission check to a TABLE/WRITE check, which BASIC users hold by default. Attackers can specify arbitrary S3 buckets in the request body to generate presigned URLs for writing to any bucket accessible by the stored IAM credentials, enabling unauthorized file uploads.
Executive ViewAI
Budibase v3.39.4 contains an authorization regression allowing any authenticated platform user to generate presigned URLs for arbitrary S3 buckets, enabling unauthorized cloud storage writes and potential data theft. Organizations running Budibase with S3 integration across multi-user deployments face immediate risk of data exfiltration and unauthorized modification of critical cloud storage. Leadership should prioritize containment given the vulnerability's ease of exploitation for any existing platform user.
No vendor-released patch identified at time of analysis. Interim mitigations include: enforce role-based access control restricting attachment uploads to BUILDER+ users only, implement AWS resource-based bucket policies limiting write access to specific Budibase service accounts, enable S3 Object Lock or versioning to detect unauthorized modifications, enable detailed CloudTrail logging with real-time alerts for unauthorized writes, rotate IAM credentials used by Budibase, implement rate limiting on presigned URL generation endpoints, and segment network access to S3 buckets at the firewall layer.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Unauthorized data access in Budibase low-code platform before 3.30.4 allows unauthenticated users to manipulate internal
SQL injection in Budibase's MySQL integration (all versions prior to 3.40.0) lets attackers execute arbitrary, stacked S
Authorization bypass in Budibase 3.31.4 and earlier. The authorized() middleware can be bypassed, enabling injection att
Budibase is a low code platform for creating internal tools, workflows, and admin panels. [CVSS 8.8 HIGH]
Unauthenticated user enumeration and metadata disclosure in Budibase prior to 3.39.32 exposes tenant identifiers, email
Server-Side Request Forgery (SSRF) in Budibase's REST datasource connector (versions prior to 3.33.4) allows authenticat
OAuth2 access and refresh token theft in Budibase's automation testing pipeline exposes SSO-authenticated builder creden
Improper Control of Dynamically-Managed Code Resources in GitHub repository budibase/budibase prior to 1.3.20. Rated med
Path traversal in Budibase low-code platform 3.31.5 and earlier allows attackers to read arbitrary files through the app
Remote code execution in Budibase self-hosted server before 3.41.3 lets authenticated administrators run arbitrary JavaS
Account enumeration and targeted denial-of-service in Budibase prior to 3.39.25 stem from an observable response discrep
Unauthenticated account takeover of pending invited users in Budibase Server (@budibase/server) versions 3.41.0 through
EUVD-2026-58653
GHSA-9pwj-99rm-cq6j
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB