Read the docs

Path traversal in Beta9 worker file API exposes host files

Priority MEDIUM 43CWE-22Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
Low
Impact type
—
Confidentiality · integrity · availability
High · High · High
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA.

Summary

The beam-cloud Beta9 worker from 0 before 0.1.756 joins tenant-supplied container paths onto host paths without confining them to the container root. A tenant with a workspace token and one running sandbox can read, write, list and delete files on the hosting worker as root, including files of other tenants on that machine (CWE-22). The flaw is network reachable and needs only low privileges.

Written with Claude Haiku 5.5 from the sources below · 2026-11-02

Description from the CNA

The Beta9 worker serves the sandbox file API from outside the container. getHostPathFromContainerPath turns the tenant's container path into a worker path. If the unresolved path starts with a mount destination, including the default upload mount at /tmp/.beta9, the remainder is joined onto that mount's source with filepath.Join, which cleans parent-directory segments after the prefix check. A long enough run of those segments names any absolute path on the worker. A path that matches no mount is joined onto the container root and opened in the worker's own filesystem, so an absolute symbolic link such as /var/run pointing at /run is followed against the worker root. Upload, download, stat, list, find-in-files, replace-in-files, and delete-file all call this helper. A tenant with a workspace token and one running sandbox can read, write, list, and delete files on the hosting worker as root, including files of other tenants on that machine. A read-only proof downloaded the worker pod's Kubernetes service account token through the file API for a path that did not exist inside the sandbox. In the shipped remote-node manifests that service account is bound to cluster-admin. Fixed in worker 0.1.756: sandbox file operations and workspace sync open paths with os.OpenRoot, so parent-directory and symlink lookups stay inside the container root or the mount source.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00484 41st percentileScored 2026-11-07
Fix Fixed Beta9 worker (beam-cloud): 0.1.756

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
beam-cloudBeta9 workerbefore 0.1.7560.1.756Patch availableCNA
  • Beta9 worker Vendorbeam-cloud Affected before 0.1.756 Fixed in 0.1.756 Patch available CNA

Remediation

Update the Beta9 worker to version 0.1.756, which opens sandbox file paths with os.OpenRoot so parent-directory and symlink lookups stay inside the container root or mount source.

Written with Claude Haiku 5.5 from the sources below · 2026-11-02

  • Fix · CNA Beta9 worker (beam-cloud) Fixed in 0.1.756

Fixed in the same release

Records fixed by the same vendor advisory or release, as the CNA lists them.

  • Release ·

    beam-cloud Beta9 worker 0.1.756

    3 records Highest priority Priority MEDIUM 3 MEDIUM

    Other records, highest priority first

    • TI-2026-83619 Path traversal in Beta9 lets tenants access worker host filesPriority MEDIUM 43
    • TI-2026-83617 Sandbox escape in Beta9 build worker via chroot-only isolationPriority MEDIUM 43

Timeline

  1. 2026-11-01 Threatist record created from CVE-2026-120307
  2. 2026-11-01 Alias added: GHSA-6h4h-qffc-3gfp
  3. 2026-11-02 CISA SSVC decision points changed

References

  • TI-2026-83619 Path traversal in Beta9 lets tenants access worker host files CVSS 3.1CRITICAL 9.9
  • TI-2026-83617 Sandbox escape in Beta9 build worker via chroot-only isolation CVSS 3.1CRITICAL 9.9

Sources