Path traversal in Beta9 worker file API exposes host files
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
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
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| beam-cloud | Beta9 worker | before 0.1.756 | 0.1.756 | Patch available | CNA |
- 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
- 2026-11-01 Threatist record created from CVE-2026-120307
- 2026-11-01 Alias added: GHSA-6h4h-qffc-3gfp
- 2026-11-02 CISA SSVC decision points changed
References
More beam-cloud vulnerabilities
- 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
- CVE-2026-120307 · CVE Program
- CVE-2026-120307 · NVD
- FIRST EPSS
- GHSA-6h4h-qffc-3gfp · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences