Boxlite: Path Traversal Vulnerability Leads to Arbitrary File Write on the Host
Date: 2026-05
Affected: go/github.com/boxlite-ai/boxlite/sdks/go, npm/@boxlite-ai/boxlite, rust/boxlite
Attack vector: path-traversal
Category: vulnerability-disclosure
Severity: Critical
CVE: CVE-2026-46695
CVE-2026-46703
CWE: CWE-22
CWE-284
CVSS: 9.6 (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H)

#### Summary Boxlite is a sandbox service that allows users to create lightweight virtual machines (Boxes) and run OCI containers within them. Boxlite allows users to specify the OCI image used by containers in the sandbox. However, when processing tar entries in OCI images, Boxlite does not account for the possibility that entries may be symlinks pointing to absolute paths. An attacker can craft a malicious OCI image and distribute it on image hosting platforms such as DockerHub, tricking users into using it. Once a user loads the malicious image, the attacker can write arbitrary content to any path on the host, which can further lead to remote code execution on the host. #### Details 1. Entry Point — OCI Layer Tarball Extraction **File:** `boxlite/src/images/archive/tar.rs` **Function:** `extract_layer_tarball_streaming()` (line 24) **Code:** ```rust pub fn extract_layer_tarball_streaming(tarball_path: &Path, dest: &Path) -> BoxliteResult<u64> { // ... apply_oci_layer(reader, dest) } ``` **Issue:** The function passes the tar reader into `apply_oci_layer`. The tarball comes from a registry blob that has passed SHA256 integrity verification against the manifest digest — but the manifest itself is controlled by the registry, so a malicious registry can serve a valid manifest pointing to a crafted layer blob with a matching digest. 2. Main Extraction Loop — Symlink Created Without Target Validation **File:** `boxlite/src/images/archive/tar.rs` **Function:** `


Mitigations:

Architectural layers (MAESTRO):