---
id: CVE-2023-48311
aliases:
  - GHSA-hfgr-h3vc-p6c2
  - PYSEC-2026-1312
title: DockerSpawner allows any image by default
summary: DockerSpawner allows any image by default
severity: medium
cvss: 4.3
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N'
vendor: dockerspawner
product: dockerspawner
ecosystem: pip
affected:
  - 'dockerspawner >= 0.11.0, < 13.0.0'
patched:
  - dockerspawner 13.0.0
published: '2023-12-08'
updated: '2026-07-07'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/GHSA-hfgr-h3vc-p6c2'
references:
  - url: >-
      https://github.com/jupyterhub/dockerspawner/security/advisories/GHSA-hfgr-h3vc-p6c2
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2023-48311'
  - url: >-
      https://github.com/jupyterhub/dockerspawner/commit/3ba4b665b6ca6027ea7a032d7ca3eab977574626
  - url: 'https://github.com/jupyterhub/dockerspawner'
tags:
  - osv
  - pip
epss: 0.00638
epssPercentile: 0.48394
ingestedAt: '2026-07-08T18:25:50.174Z'
---

## Overview

### Impact

Users of JupyterHub deployments running DockerSpawner starting with 0.11.0 without specifying `DockerSpawner.allowed_images` configuration allow users to launch _any_ pullable image, instead of restricting to only the single configured image, as intended.

### Patches

Upgrade to DockerSpawner 13.

### Workarounds

Explicitly setting `DockerSpawner.allowed_images` to a non-empty list containing only the default image will result in the intended default behavior:

```python
c.DockerSpawner.image = "your-image"
c.DockerSpawner.allowed_images = ["your-image"]
```


## Affected packages

- `dockerspawner >= 0.11.0, < 13.0.0`

## Remediation

Upgrade to a patched release:

- `dockerspawner 13.0.0`
