---
id: CVE-2026-120308
title: Beta9 host filesystem exposure via volume path traversal
summary: >-
  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. Nothin…
severity: critical
cvss: 9.9
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-22
  - CWE-668
vendor: beam-cloud
product: github.com/beam-cloud/beta9
affected:
  - github.com/beam-cloud/beta9 < 0.1.776
  - github.com/beam-cloud/beta9 < 0.1.756
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-11-02T19:45:04.950921Z'
published: '2026-11-01'
updated: '2026-11-02'
sourceUpdated: '2026-11-02T19:45:15.233Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-120308'
references:
  - url: 'https://github.com/beam-cloud/beta9'
    label: Beta9 repository
  - url: 'https://github.com/beam-cloud/beta9/pull/1897'
    label: Handle sandbox edge cases (fix pull request)
  - url: >-
      https://github.com/beam-cloud/beta9/commit/a28bf12cf0007c792a25d8ed282b4e8bf6f30393
    label: Fix commit a28bf12
  - url: 'https://github.com/beam-cloud/beta9/releases/tag/gateway-0.1.776'
    label: gateway-0.1.776
  - url: 'https://github.com/beam-cloud/beta9/releases/tag/worker-0.1.756'
    label: worker-0.1.756
  - url: 'https://github.com/beam-cloud/beta9/releases/tag/gateway-0.1.769'
    label: gateway-0.1.769 (confirmed affected)
  - url: 'https://github.com/beam-cloud/beta9/releases/tag/worker-0.1.745'
    label: worker-0.1.745 (confirmed affected)
tags:
  - cve.org
epss: 0.00527
epssPercentile: 0.44787
ingestedAt: '2026-11-05T19:30:42.811Z'
---

## Overview

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.

## Affected

- `github.com/beam-cloud/beta9 < 0.1.776`
- `github.com/beam-cloud/beta9 < 0.1.756`

## Remediation

Upgrade the gateway to 0.1.776 or later and the worker to 0.1.756 or later. Volume identifiers and mount paths are rejected when they are empty, ".", "..", or contain a slash (identifiers) or a ".." segment (mount paths). The gateway also refuses a volume the workspace does not own. Stubs stored before the check existed are validated when they are launched. The fix is commit a28bf12 (pull request 1897), released on 2026-09-15.
