CVE-2026-120308
Critical 9.9
Description
A Beta9 tenant can attach a volume when deploying a function, endpoint, or task queue. The gateway builds the host path by joining the shared volumes root, the workspace name, and the volume identifier from the stub configuration. Nothing checks that the identifier names a volume that workspace owns. Parent-directory segments in the identifier collapse the joined path to the worker's filesystem root, and the worker bind-mounts that path into the sandbox read-write unless the volume was explicitly marked read-only. A tenant with a workspace token can therefore read and write the worker's files, including other tenants' volumes stored on that machine. Confirmed against gateway 0.1.769 and worker 0.1.745. Fixed in gateway 0.1.776 and worker 0.1.756: volume identifiers and mount paths are validated before a mount is built, including for stubs saved before the check existed, and the gateway rejects a volume that does not exist or is not owned by the workspace.
Metrics
- CVSS 3.1
-
9.9 (CRITICAL)
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H - CWE
- CWE-22, CWE-668
References
- https://github.com/beam-cloud/beta9
- https://github.com/beam-cloud/beta9/commit/a28bf12cf0007c792a25d8ed282b4e8bf6f3…
- https://github.com/beam-cloud/beta9/pull/1897
- https://github.com/beam-cloud/beta9/releases/tag/gateway-0.1.769
- https://github.com/beam-cloud/beta9/releases/tag/gateway-0.1.776
- https://github.com/beam-cloud/beta9/releases/tag/worker-0.1.745
- https://github.com/beam-cloud/beta9/releases/tag/worker-0.1.756