CVE-2026-54352 Budibase: Arbitrary file read by workspace-builder via PWA-zip symlink upload

Critical 9.6 Published Updated

A workspace builder can read arbitrary server files by uploading a zip containing symlinks, bypassing path validation checks.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-54352?

CVE-2026-54352 is a critical path traversal vulnerability in budibase, published on 26 Jun 2026. Any signed-in user can exploit it over the network, with no action from the victim.

Official description

Budibase is an open-source low-code platform. Prior to 3.39.9, `POST /api/pwa/process-zip` at packages/server/src/api/routes/static.ts:24 accepts a builder-uploaded .zip, extracts it with [email protected] into a temp directory, then for each entry listed in icons.json validates the icon path, opens it, and streams the bytes into MinIO. The resulting object is served back via GET /api/assets/{appId}/pwa/{uuid}.png. [email protected] preserves absolute symlink targets when restoring symlink entries. The icon-source validator at packages/server/src/api/controllers/static/index.ts:259-268 resolves the icon source string against baseDir (path.resolve), checks resolvedSrc.startsWith(baseDir + path.sep) against that string, and calls fs.existsSync(resolvedSrc) which follows symbolic links to confirm the target exists. None of the three calls reject symbolic-link entries. packages/backend-core/src/objectStore/objectStore.ts:302 then calls (await fsp.open(path)).createReadStream() on the resolved path. fsp.open follows the symlink, the target file's bytes stream into MinIO, and the response of the asset-fetch endpoint returns those bytes verbatim. Result: a workspace-level builder reads any file the server process can open. This vulnerability is fixed in 3.39.9.

Weakness: CWE-59, CWE-22

Which versions are affected by CVE-2026-54352?

2 open source packages ship an affected version, including @budibase/server. It affects 1 product.

PackageAffectedFixed in
@budibase/server npmAll versions3.39.9
@budibase/server npmAll versions3.39.9

Products include Budibase Budibase.

How do I fix CVE-2026-54352?

Upgrade @budibase/server to 3.39.9 or later.

Upgrade, and resolve every user-supplied path against an allowed base folder before opening it. More about Path traversal.

Is CVE-2026-54352 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-54352 exists.

Sources

Also known as GHSA-w7mq-r738-x278.

Is CVE-2026-54352 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free