You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Security] Unvalidated CDI Host Mounts & RuntimeAssetPaths in ateom #2091
This is a result of an internal vuln finding run. Many of these are known issues, but don't appear to have tracking issues, so I'm filing them anyway.
[Security] Unvalidated CDI Host Mounts & RuntimeAssetPaths in ateom
Severity: HIGH (4.50) | CWE: CWE-250 / CWE-73
Problem Description
In ateom-microvm and ateom-gvisor, paths provided in RuntimeAssetPaths and Container Device Interface (CDI) device injections are executed as root or mounted from the host without rigorous validation:
ateom-microvm executes binary paths provided in RuntimeAssetPaths (cloud-hypervisor, virtiofsd, kernel) as root without verifying they reside inside a read-only trusted directory (cmd/ateom-microvm/run.go:730, cmd/ateom-microvm/restore.go:315).
ateom-gvisor's cdiinject injects CDI HostPath mounts and follows symlinks when reading ELF headers on the host (cmd/ateom-gvisor/internal/cdiinject/inject.go:121, cmd/ateom-gvisor/internal/cdiinject/soname.go:37).
Attack Vector
An attacker with control over microvm asset paths or CDI specifications can:
Supply arbitrary host executable paths in RuntimeAssetPaths, causing ateom to execute arbitrary host binaries with root privileges.
Specify arbitrary host paths in CDI device definitions to mount sensitive host directories into the container or cause host file leakage via symlink resolution.
Impact
Arbitrary code execution as root on the worker host node, host directory traversal, and MicroVM container breakout.
Proposed Remediation
Validate and strictly constrain RuntimeAssetPaths to verified, trusted root directories; reject relative paths or unverified targets.
In cdiinject, validate HostPath mounts against an allowlist and ensure symlinks are safely evaluated without escaping root device paths.
Add automated tests verifying that invalid asset paths and arbitrary host paths in CDI specs are rejected.
Just to be clear: cdiinject is not live code currently. It was factored out and kept from the early GPU support we backed out of the API.
We should fix it, but it presents no actual risk yet
ateom-microvm executes binary paths provided in RuntimeAssetPaths (cloud-hypervisor, virtiofsd, kernel) as root without verifying they reside inside a read-only trusted directory (cmd/ateom-microvm/run.go:730, cmd/ateom-microvm/restore.go:315).
This is a different issue though. That's in live code.
Activity
destijl commentedon Oct 2, 2026
This isn't a breakout, but it feels breakout adjacent and should probably be fixed before GA.
zlammerts-svg commentedon Oct 2, 2026
Benjamin Elder (@BenTheElder) will you be able to take this one given your familiarity with cmd/ateom-gvisor/internal/cdiinject?
BenTheElder commentedon Oct 2, 2026
Just to be clear: cdiinject is not live code currently. It was factored out and kept from the early GPU support we backed out of the API.
We should fix it, but it presents no actual risk yet
This is a different issue though. That's in live code.
security: only run sandbox runtime assets from the static files dir (a…
cdiinject: confine device paths and host mounts to allowed roots (age…
Sync upstream sandbox, snapshot, and HTTPS egress updates (#69)