CVE-2023-48311
Any image allowed by default
dockerspawner is a tool to spawn JupyterHub single user servers in Docker containers. Users of JupyterHub deployments running DockerSpawner starting with 0.11.0 without specifying DockerSpawner.allowed_images configuration allow users to launch any pullable docker image, instead of restricting to only the single configured image, as intended. This issue has been addressed in commit 3ba4b665b which has been included in dockerspawner release version 13. Users are advised to upgrade. Users unable to upgrade should explicitly set DockerSpawner.allowed_images to a non-empty list containing only the default image will result in the intended default behavior.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.0
Any image allowed by default
dockerspawner is a tool to spawn JupyterHub single user servers in Docker containers. Users of JupyterHub deployments running DockerSpawner starting with 0.11.0 without specifying DockerSpawner.allowed_images configuration allow users to launch any pullable docker image, instead of restricting to only the single configured image, as intended. This issue has been addressed in commit 3ba4b665b which has been included in dockerspawner release version 13. Users are advised to upgrade. Users unable to upgrade should explicitly set DockerSpawner.allowed_images to a non-empty list containing only the default image will result in the intended default behavior.
- Record
CVE-2023-48311- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-20
- Updated
- 2026-11-02
EUVDEUVD-2023-3219
8.0
dockerspawner is a tool to spawn JupyterHub single user servers in Docker containers. Users of JupyterHub deployments running DockerSpawner starting with 0.11.0 without specifying DockerSpawner.allowed_images configuration allow users to launch any pullable docker image, instead of restricting to only the single configured image, as intended. This issue has been addressed in commit 3ba4b665b which has been included in dockerspawner release version 13. Users are advised to upgrade. Users unable to upgrade should explicitly set DockerSpawner.allowed_images to a non-empty list containing only the default image will result in the intended default behavior.
- Record
EUVD-2023-3219- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-hfgr-h3vc-p6c2
4.3
DockerSpawner allows any image by default
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:
c.DockerSpawner.image = "your-image"
c.DockerSpawner.allowed_images = ["your-image"]
- Record
GHSA-hfgr-h3vc-p6c2- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-20
- Updated
- 2026-11-02
NVD
8.0
dockerspawner is a tool to spawn JupyterHub single user servers in Docker containers. Users of JupyterHub deployments running DockerSpawner starting with 0.11.0 without specifying DockerSpawner.allowed_images configuration allow users to launch any pullable docker image, instead of restricting to only the single configured image, as intended. This issue has been addressed in commit 3ba4b665b which has been included in dockerspawner release version 13. Users are advised to upgrade. Users unable to upgrade should explicitly set DockerSpawner.allowed_images to a non-empty list containing only the default image will result in the intended default behavior.
- Record
CVE-2023-48311- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H - CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-20
- Updated
- 2026-11-02
OSV
8.0
Any image allowed by default
dockerspawner is a tool to spawn JupyterHub single user servers in Docker containers. Users of JupyterHub deployments running DockerSpawner starting with 0.11.0 without specifying DockerSpawner.allowed_images configuration allow users to launch any pullable docker image, instead of restricting to only the single configured image, as intended. This issue has been addressed in commit 3ba4b665b which has been included in dockerspawner release version 13. Users are advised to upgrade. Users unable to upgrade should explicitly set DockerSpawner.allowed_images to a non-empty list containing only the default image will result in the intended default behavior.
- Record
CVE-2023-48311- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-20
- Updated
- 2026-11-02
OSVGHSA-hfgr-h3vc-p6c2
4.3
DockerSpawner allows any image by default
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:
c.DockerSpawner.image = "your-image"
c.DockerSpawner.allowed_images = ["your-image"]
- Record
GHSA-hfgr-h3vc-p6c2- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-20
- Updated
- 2026-11-02
OSVPYSEC-2026-1312
4.3
DockerSpawner allows any image by default
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:
c.DockerSpawner.image = "your-image"
c.DockerSpawner.allowed_images = ["your-image"]
- Record
PYSEC-2026-1312- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
dockerspawnerPyPI |
0.11.0 up to 13.0.0 | 13.0.0 |
dockerspawnerPyPI |
0.11.0 up to 13.0.0, plus listed versions 0.11.112.0.012.1.0 |
13.0.0 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2023-48311 is a high vulnerability (CVSS 8.0) in Jupyter Dockerspawner, published December 8, 2023. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.64%, the 50th percentile. Fixed in dockerspawner 13.0.0.
References
github.com/jupyterhub/dockerspawner/security/advisories/GHSA-hfgr-h3vc-p6c2
github.com/jupyterhub/dockerspawner/commit/3ba4b665b6ca6027ea7a032d7ca3eab977574626
nvd.nist.gov/vuln/detail/CVE-2023-48311
github.com/advisories/GHSA-hfgr-h3vc-p6c2
github.com/CVEProject/cvelistV5/tree/main/cves/2023/48xxx/CVE-2023-48311.json
github.com/jupyterhub/dockerspawner
pypi.org/project/dockerspawner