Docker Model Runner container-to-host code execution via unsandboxed trust_remote_code in Python inference backends
The vllm-metal inference backend in Docker Model Runner on macOS unconditionally sets trust_remote_code=True when loading model tokenizers, and runs without sandboxing. This causes transformers.AutoTokenizer.from_pretrained() to import and execute arbitrary Python files included in any model pulled from an OCI registry, resulting in arbitrary code execution on the Docker host as the Docker Desktop user when inference is triggered.
Any container on the Docker network can trigger this by calling the model-runner.docker.internal API to pull a malicious model and request inference.
Problem Types
| Type | CWE ID | Description |
|---|
| CWE | CWE-829 | CWE-829: Inclusion of Functionality from Untrusted Control Sphere |
Type: CWE
Description: CWE-829: Inclusion of Functionality from Untrusted Control Sphere
Metrics
| Version | Base score | Base severity | Vector |
|---|
| 4.0 | 8.8 | HIGH | CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H |
| 3.1 | 8.2 | HIGH | CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H |
Version: 4.0
Base score: 8.8
Base severity: HIGH
Vector: CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Version: 3.1
Base score: 8.2
Base severity: HIGH
Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
Impacts
| CAPEC ID | Description |
|---|
| CAPEC-480 | CAPEC-480 Escaping Virtualization |
Description: CAPEC-480 Escaping Virtualization