---
title: "CVE-2026-48150: Budibase: Workspace-scoped builder escalates to global admin via /api/public/v1/roles/assign"
url: https://erroneo.us/security/cve/CVE-2026-48150/
description: "CVE-2026-48150 (@budibase/server (npm)): Budibase is an open-source low-code platform. Prior to 3.39.0, /api/public/v1/roles/assign is guarded by the…"
type: vulnerability-record
section: "Security Digest"
date_published: 2026-05-27
date_modified: 2026-06-12
publisher: erroneo.us
author: erroneo.us Security Desk
cve: "CVE-2026-48150"
kev: false
cvss: 9
epss: 0.00471
license: All rights reserved. Quote with attribution and a link.
---

# CVE-2026-48150: Budibase: Workspace-scoped builder escalates to global admin via /api/public/v1/roles/assign

**Signal:** Critical, preconditions apply. Severe if exploited, but exploitation needs conditions that may not apply to you. (Computed from CISA KEV, EPSS and CVSS; not an editorial verdict.)

## Should you act?

- Not in CISA KEV , but CISA’s SSVC assessment records a public proof-of-concept, so attack code exists.
- EPSS 0.5% , percentile 40: FIRST’s model estimates a 0.5% chance of exploitation activity in the next 30 days, higher than 40% of all scored CVEs (low). EPSS is a probability, not a verdict.
- Needs an account (high (admin)). Exposure depends on who can log in.
- Only applies if your dependency tree includes @budibase/server (npm) < 3.39.0, fixed in 3.39.0 . Check your lockfile, including transitive dependencies.

## What it is

Budibase is an open-source low-code platform. Prior to 3.39.0, /api/public/v1/roles/assign is guarded by the builderOrAdmin middleware, which passes any user who is a builder for the app id in the x-budibase-app-id header. That check admits both global builders and workspace-scoped builders (builder.apps set but builder.global unset). The controller then spreads the request body into the SDK call, and the SDK grants builder.global=true or admin.global=true on whichever user ids the caller supplies. Bob, a workspace-scoped builder with an API key, promotes himself or any other user to global admin with one POST. The whole flow is tenant-wide privilege escalation from an app-level role, available to anyone with an Enterprise license that unlocks the EXPANDEDPUBLICAPI feature. This vulnerability is fixed in 3.39.0.

## Affected packages

- npm `@budibase/server` < 3.39.0 → fixed: 3.39.0

## Affected products (CVE record)

- Budibase budibase: < 3.39.0

## Severity

- GitHub_M CVSS 3.1: 9 `CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:L`
- GitHub CVSS 3.1: 9.0 `CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:L`

## Exploitation

- CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
- CISA SSVC assessment: exploitation poc , automatable no , technical impact partial .
- FIRST EPSS (model of 2026-10-21): 0.47% probability of exploitation activity in the next 30 days; percentile 40.

## Sources

- [GitHub Advisory GHSA-6xp4-cf37-ppjh](https://github.com/advisories/GHSA-6xp4-cf37-ppjh)
- [CVE.org record CVE-2026-48150](https://www.cve.org/CVERecord?id=CVE-2026-48150)
- [NVD entry CVE-2026-48150](https://nvd.nist.gov/vuln/detail/CVE-2026-48150)
- [github.com](https://github.com/Budibase/budibase/security/advisories/GHSA-6xp4-cf37-ppjh)

---
Source page: https://erroneo.us/security/cve/CVE-2026-48150/ · Security Digest: https://erroneo.us/security/ · More: https://erroneo.us/llms.txt
