Sandbox escape in Beta9 build worker via chroot-only isolation
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Privilege escalation
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-269.
Summary
Beta9 worker versions from 0 before 0.1.756 run tenant build steps with Buildah in chroot-only isolation. The steps keep the worker pod's PID, network, IPC and user namespaces, run as root and hold CAP_DAC_OVERRIDE, so a build step can write to the worker container filesystem through /proc/1/root. An authenticated tenant with a workspace token can exploit this by submitting one image build, and the flaw is classified under CWE-269 and CWE-653.
Written with Claude Haiku 5.5 from the sources below · 2026-11-02
Description from the CNA
Beta9 turns each shell command in a tenant image definition into a Dockerfile RUN line and executes it with Buildah on the build worker. The worker image sets BUILDAH_ISOLATION=chroot, and no buildah invocation passes --isolation, so the step only changes its filesystem root. It keeps the worker pod's PID, network, IPC, and user namespaces, runs as uid 0, and holds CAP_DAC_OVERRIDE. PID 1 in that procfs is the worker entrypoint, so /proc/1/root is the worker container's filesystem and is writable. That filesystem contains the runc, buildah, and runsc binaries the worker uses to start tenant containers, the worker's Kubernetes service account token, and the host directories mounted into the pod. Worker pods are privileged. Clip v2 layered builds are the default, so a tenant with a workspace token reaches this by submitting one image build. The read-only proof confirmed the shared namespaces, CAP_DAC_OVERRIDE, and that the worker's runc binary is visible at /proc/1/root. Fixed in worker 0.1.756: Buildah RUN steps, including the WORKDIR mkdir, use OCI isolation with private PID, IPC, and network namespaces, and tenant ARG values are passed only into the build container.
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
Upgrade beam-cloud Beta9 worker to version 0.1.756, which runs Buildah RUN steps with OCI isolation and private PID, IPC and network namespaces.
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-83618 Path traversal in Beta9 worker file API exposes host filesPriority MEDIUM 43
Timeline
- 2026-11-01 Threatist record created from CVE-2026-120306
- 2026-11-01 Alias added: GHSA-xvhg-75x6-gj86
- 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-83618 Path traversal in Beta9 worker file API exposes host files CVSS 3.1CRITICAL 9.9
Sources
- CVE-2026-120306 · CVE Program
- CVE-2026-120306 · NVD
- FIRST EPSS
- GHSA-xvhg-75x6-gj86 · 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