Skip to content
QuenchWorks

poetry 2.3.4

Runtime · Build tool · standard · v2.3.4

D 95nonrootcosign signedSPDX SBOMSLSA provenanceamd64 · arm64

Python base image with Poetry for dependency management and packaging, used as the build stage for Python projects. Line 2.

Version line

The latest line lives at the base page; older lines have their own page so you can pin and verify exactly that version.

Signed
cosign keyless
SBOM
SPDX, on digest
Provenance
SLSA build
Architectures
amd64, arm64
Runs as
nonroot (uid 1001)
Image size
118.3 MB
Last rebuilt
2026-07-04

Security report (Trivy)

D· 0/10095 fixable · rebuild clears them

Vulnerability detail

poetry 2.3.4 · 84 CVE
CVESeverityPackageInstalledFixed inTitle
CVE-2026-11940HIGHpython-3.10-base3.10.20-r83.10.20-r10python: cpython: CPython: tarfile extraction filter bypass allows escaping the destination directory
CVE-2026-11940HIGHpython-3.11-base3.11.15-r63.11.15-r8python: cpython: CPython: tarfile extraction filter bypass allows escaping the destination directory
CVE-2026-11940HIGHpython-3.12-base3.12.13-r83.12.13-r10python: cpython: CPython: tarfile extraction filter bypass allows escaping the destination directory
CVE-2026-11940HIGHpython-3.133.13.14-r03.13.14-r2python: cpython: CPython: tarfile extraction filter bypass allows escaping the destination directory
CVE-2026-11940HIGHpython-3.13-base3.13.14-r03.13.14-r2python: cpython: CPython: tarfile extraction filter bypass allows escaping the destination directory
CVE-2026-11940HIGHpython-3.14-base3.14.6-r13.14.6-r3python: cpython: CPython: tarfile extraction filter bypass allows escaping the destination directory
CVE-2026-14456HIGHlibcrypto33.6.3-r33.6.3-r5openssl: OpenSSL: Denial of Service via unbounded memory growth in QUIC server
CVE-2026-14456HIGHlibssl33.6.3-r33.6.3-r5openssl: OpenSSL: Denial of Service via unbounded memory growth in QUIC server
CVE-2026-14456HIGHopenssl3.6.3-r33.6.3-r5openssl: OpenSSL: Denial of Service via unbounded memory growth in QUIC server
CVE-2026-14456HIGHopenssl-provider-legacy3.6.3-r33.6.3-r5openssl: OpenSSL: Denial of Service via unbounded memory growth in QUIC server
CVE-2026-15308HIGHpython-3.10-base3.10.20-r83.10.21-r0python: Python: CPU Denial of Service in HTML parser via repeated unterminated markup declarations
CVE-2026-15308HIGHpython-3.11-base3.11.15-r63.11.16-r1python: Python: CPU Denial of Service in HTML parser via repeated unterminated markup declarations
CVE-2026-15308HIGHpython-3.12-base3.12.13-r83.12.14-r2python: Python: CPU Denial of Service in HTML parser via repeated unterminated markup declarations
CVE-2026-15308HIGHpython-3.133.13.14-r03.13.14-r3python: Python: CPU Denial of Service in HTML parser via repeated unterminated markup declarations
CVE-2026-15308HIGHpython-3.13-base3.13.14-r03.13.14-r3python: Python: CPU Denial of Service in HTML parser via repeated unterminated markup declarations
CVE-2026-15308HIGHpython-3.14-base3.14.6-r13.14.6-r4python: Python: CPU Denial of Service in HTML parser via repeated unterminated markup declarations
CVE-2026-3644HIGHpython-3.11-base3.11.15-r63.11.15-r9cpython: Incomplete control character validation in http.cookies
CVE-2026-4224HIGHpython-3.11-base3.11.15-r63.11.15-r9cpython: Stack overflow parsing XML with deeply nested DTD content models
CVE-2026-4786HIGHpython-3.12-base3.12.13-r83.12.14-r2python: cpython: Python: Arbitrary code execution via command injection in webbrowser.open() API
CVE-2026-69247HIGHcryptography49.0.050.0.0python-cryptography: python-cryptography: PKCS#7 EnvelopedData decryption exposes a Bleichenbacher oracle through distinguishable errors and timing
CVE-2025-15366MEDIUMpython-3.133.13.14-r03.13.15-r0cpython: IMAP command injection in user-controlled commands
CVE-2025-15366MEDIUMpython-3.13-base3.13.14-r03.13.15-r0cpython: IMAP command injection in user-controlled commands
CVE-2025-15366MEDIUMpython-3.14-base3.14.6-r13.14.7-r0cpython: IMAP command injection in user-controlled commands
CVE-2026-0864MEDIUMpython-3.10-base3.10.20-r83.10.20-r10python: cpython: Python configparser: Configuration injection via crafted multi-line input
CVE-2026-0864MEDIUMpython-3.11-base3.11.15-r63.11.15-r8python: cpython: Python configparser: Configuration injection via crafted multi-line input
CVE-2026-0864MEDIUMpython-3.12-base3.12.13-r83.12.13-r10python: cpython: Python configparser: Configuration injection via crafted multi-line input
CVE-2026-0864MEDIUMpython-3.133.13.14-r03.13.14-r2python: cpython: Python configparser: Configuration injection via crafted multi-line input
CVE-2026-0864MEDIUMpython-3.13-base3.13.14-r03.13.14-r2python: cpython: Python configparser: Configuration injection via crafted multi-line input
CVE-2026-0864MEDIUMpython-3.14-base3.14.6-r13.14.6-r3python: cpython: Python configparser: Configuration injection via crafted multi-line input
CVE-2026-11972MEDIUMpython-3.10-base3.10.20-r83.10.20-r10python: Python tarfile module: Denial of Service via improper EOF handling in streaming mode
CVE-2026-11972MEDIUMpython-3.11-base3.11.15-r63.11.15-r8python: Python tarfile module: Denial of Service via improper EOF handling in streaming mode
CVE-2026-11972MEDIUMpython-3.12-base3.12.13-r83.12.13-r10python: Python tarfile module: Denial of Service via improper EOF handling in streaming mode
CVE-2026-11972MEDIUMpython-3.133.13.14-r03.13.14-r2python: Python tarfile module: Denial of Service via improper EOF handling in streaming mode
CVE-2026-11972MEDIUMpython-3.13-base3.13.14-r03.13.14-r2python: Python tarfile module: Denial of Service via improper EOF handling in streaming mode
CVE-2026-11972MEDIUMpython-3.14-base3.14.6-r13.14.6-r3python: Python tarfile module: Denial of Service via improper EOF handling in streaming mode
CVE-2026-13346MEDIUMpip26.1.226.2.0pip: pip: Arbitrary file installation via malicious package indexes
CVE-2026-1502MEDIUMpython-3.11-base3.11.15-r63.11.15-r9python: Python: HTTP header injection via CR/LF in proxy tunnel headers
CVE-2026-15806MEDIUMpython-3.10-base3.10.20-r83.10.21-r3python: Python: Information disclosure due to incorrect URL scheme matching
CVE-2026-15806MEDIUMpython-3.11-base3.11.15-r63.11.16-r4python: Python: Information disclosure due to incorrect URL scheme matching
CVE-2026-15806MEDIUMpython-3.12-base3.12.13-r83.12.14-r5python: Python: Information disclosure due to incorrect URL scheme matching
CVE-2026-15806MEDIUMpython-3.133.13.14-r03.13.15-r5python: Python: Information disclosure due to incorrect URL scheme matching
CVE-2026-15806MEDIUMpython-3.13-base3.13.14-r03.13.15-r5python: Python: Information disclosure due to incorrect URL scheme matching
CVE-2026-15806MEDIUMpython-3.14-base3.14.6-r13.14.7-r5python: Python: Information disclosure due to incorrect URL scheme matching
CVE-2026-17084MEDIUMpython-3.10-base3.10.20-r83.10.21-r4python: Python stringprep module: Incorrect domain name processing breaks IDNA interoperability
CVE-2026-17084MEDIUMpython-3.11-base3.11.15-r63.11.16-r5python: Python stringprep module: Incorrect domain name processing breaks IDNA interoperability
CVE-2026-17084MEDIUMpython-3.12-base3.12.13-r83.12.14-r6python: Python stringprep module: Incorrect domain name processing breaks IDNA interoperability
CVE-2026-17084MEDIUMpython-3.133.13.14-r03.13.15-r6python: Python stringprep module: Incorrect domain name processing breaks IDNA interoperability
CVE-2026-17084MEDIUMpython-3.13-base3.13.14-r03.13.15-r6python: Python stringprep module: Incorrect domain name processing breaks IDNA interoperability
CVE-2026-17084MEDIUMpython-3.14-base3.14.6-r13.14.7-r6python: Python stringprep module: Incorrect domain name processing breaks IDNA interoperability
CVE-2026-4360MEDIUMpython-3.10-base3.10.20-r83.10.20-r10python: Python Tarfile: Unexpected file ownership when extracting hardlinks
CVE-2026-4360MEDIUMpython-3.11-base3.11.15-r63.11.15-r8python: Python Tarfile: Unexpected file ownership when extracting hardlinks
CVE-2026-4360MEDIUMpython-3.12-base3.12.13-r83.12.13-r10python: Python Tarfile: Unexpected file ownership when extracting hardlinks
CVE-2026-4360MEDIUMpython-3.133.13.14-r03.13.14-r2python: Python Tarfile: Unexpected file ownership when extracting hardlinks
CVE-2026-4360MEDIUMpython-3.13-base3.13.14-r03.13.14-r2python: Python Tarfile: Unexpected file ownership when extracting hardlinks
CVE-2026-4360MEDIUMpython-3.14-base3.14.6-r13.14.6-r3python: Python Tarfile: Unexpected file ownership when extracting hardlinks
CVE-2026-59890MEDIUMpy3.10-setuptools82.0.1-r183.0.0-r0setuptools: setuptools: MANIFEST.in exclusion bypass in sdist via Unicode normalization collision (NFC/NFD)
CVE-2026-59890MEDIUMpy3.11-setuptools82.0.1-r183.0.0-r0setuptools: setuptools: MANIFEST.in exclusion bypass in sdist via Unicode normalization collision (NFC/NFD)
CVE-2026-59890MEDIUMpy3.12-setuptools82.0.1-r183.0.0-r0setuptools: setuptools: MANIFEST.in exclusion bypass in sdist via Unicode normalization collision (NFC/NFD)
CVE-2026-59890MEDIUMpy3.13-setuptools82.0.1-r183.0.0-r0setuptools: setuptools: MANIFEST.in exclusion bypass in sdist via Unicode normalization collision (NFC/NFD)
CVE-2026-59890MEDIUMpy3.14-setuptools82.0.1-r183.0.0-r0setuptools: setuptools: MANIFEST.in exclusion bypass in sdist via Unicode normalization collision (NFC/NFD)
CVE-2026-59890MEDIUMsetuptools82.0.183.0.0setuptools: setuptools: MANIFEST.in exclusion bypass in sdist via Unicode normalization collision (NFC/NFD)
CVE-2026-7774MEDIUMpython-3.10-base3.10.20-r83.10.21-r0python: CPython: Python tarfile: Arbitrary file write via crafted link entries
CVE-2026-7774MEDIUMpython-3.11-base3.11.15-r63.11.15-r9python: CPython: Python tarfile: Arbitrary file write via crafted link entries
CVE-2026-85091MEDIUMzlib1.3.2-r31.3.3-r0zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vul ...
CVE-2026-9669MEDIUMpython-3.10-base3.10.20-r83.10.21-r0python: Python: Denial of Service via out-of-bounds write in BZ2 decompression
CVE-2026-9669MEDIUMpython-3.11-base3.11.15-r63.11.16-r1python: Python: Denial of Service via out-of-bounds write in BZ2 decompression
CVE-2026-9669MEDIUMpython-3.12-base3.12.13-r83.12.14-r2python: Python: Denial of Service via out-of-bounds write in BZ2 decompression
CVE-2025-13462LOWpython-3.11-base3.11.15-r63.11.15-r9cpython: cpython: `tarfile` module misinterprets crafted tar archives leading to data integrity issues
CVE-2026-18503LOWpython-3.10-base3.10.20-r83.10.21-r0python: Python: Denial of Service via super-linear regular expression work in csv.Sniffer.sniff()
CVE-2026-18503LOWpython-3.11-base3.11.15-r63.11.16-r0python: Python: Denial of Service via super-linear regular expression work in csv.Sniffer.sniff()
CVE-2026-18503LOWpython-3.12-base3.12.13-r83.12.14-r0python: Python: Denial of Service via super-linear regular expression work in csv.Sniffer.sniff()
CVE-2026-2297LOWpython-3.10-base3.10.20-r83.10.21-r0cpython: CPython: Logging Bypass in Legacy .pyc File Handling
CVE-2026-2297LOWpython-3.11-base3.11.15-r63.11.16-r1cpython: CPython: Logging Bypass in Legacy .pyc File Handling
CVE-2026-2297LOWpython-3.12-base3.12.13-r83.12.14-r2cpython: CPython: Logging Bypass in Legacy .pyc File Handling
CVE-2026-54876LOWlibcrypto33.6.3-r33.6.3-r4openssl: OpenSSL: Memory leak leads to Denial of Service in OCSP response checking
CVE-2026-54876LOWlibssl33.6.3-r33.6.3-r4openssl: OpenSSL: Memory leak leads to Denial of Service in OCSP response checking
CVE-2026-54876LOWopenssl3.6.3-r33.6.3-r4openssl: OpenSSL: Memory leak leads to Denial of Service in OCSP response checking
CVE-2026-54876LOWopenssl-provider-legacy3.6.3-r33.6.3-r4openssl: OpenSSL: Memory leak leads to Denial of Service in OCSP response checking
CVE-2026-6879LOWpython-3.10-base3.10.20-r83.10.21-r0python: Python: Performance degradation in XML processing due to quadratic time complexity
CVE-2026-6879LOWpython-3.11-base3.11.15-r63.11.16-r0python: Python: Performance degradation in XML processing due to quadratic time complexity
CVE-2026-6879LOWpython-3.12-base3.12.13-r83.12.14-r0python: Python: Performance degradation in XML processing due to quadratic time complexity
CVE-2026-6879LOWpython-3.133.13.14-r03.13.15-r0python: Python: Performance degradation in XML processing due to quadratic time complexity
CVE-2026-6879LOWpython-3.13-base3.13.14-r03.13.15-r0python: Python: Performance degradation in XML processing due to quadratic time complexity
CVE-2026-6879LOWpython-3.14-base3.14.6-r13.14.7-r0python: Python: Performance degradation in XML processing due to quadratic time complexity
0
Critical
21
High
57
Medium
17
Low
0
Unknown

Security report (Trivy) · poetry 2.3.4

Published versions

3 tags

Each tag is a multi-arch index (amd64 + arm64) pinned by digest. Tagged by version, never :latest.

VersionSizePublishedDigest
2.4.1latest46.8 MB2026-08-26sha256:84a3ec1d61fd…
2.4.0118.3 MB2026-07-04sha256:2e2fd5be7123…
2.3.4118.3 MB2026-07-04sha256:cf7aa4f8aaf0…

Use it as a base image

Reference it in the FROM line of your Dockerfile. Nonroot, read-only root filesystem, built for amd64 and arm64.

FROM ghcr.io/quenchworks/images/poetry:2.3.4

Or pull it directly

docker pull ghcr.io/quenchworks/images/poetry:2.3.4
Version line
2.3.4
Latest line
2.4.1, 2.3.4, 2.4.0
Architectures
amd64, arm64
Runs as
nonroot (uid 1001)
Root filesystem
read-only
License
MIT

Verify the supply chain

This image is cosign-signed and carries an SPDX SBOM and a SLSA build-provenance attestation on the same digest. Check all three before you build on it:

# 1. signature — built and signed by QuenchWorks CI
cosign verify ghcr.io/quenchworks/images/poetry:2.3.4 \
  --certificate-identity-regexp 'https://github.com/quenchworks/.+' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

# 2. SLSA build provenance — which workflow built it, from what
cosign verify-attestation --type https://slsa.dev/provenance/v1 ghcr.io/quenchworks/images/poetry:2.3.4 \
  --certificate-identity-regexp 'https://github.com/quenchworks/.+' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

# 3. SPDX SBOM — the package inventory
cosign verify-attestation --type https://spdx.dev/Document/v2.3 ghcr.io/quenchworks/images/poetry:2.3.4 \
  --certificate-identity-regexp 'https://github.com/quenchworks/.+' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

See the SBOM & provenance guide for reading the SBOM and using these checks in CI.

Best-practice Dockerfile for 2.3.4

Poetry leads: it installs the locked, production-only dependency set into an in-project venv, then a clean python base receives that venv and the app. Poetry never ships in the runtime image.

ghcr.io/quenchworks/images/poetry:2.3.4118.3 MBrebuilt 71 days ago
# Build stage: Poetry installs the main group into an in-project venv.
FROM ghcr.io/quenchworks/images/poetry:2.3.4 AS build
USER root
WORKDIR /app
ENV POETRY_VIRTUALENVS_IN_PROJECT=true \
POETRY_NO_INTERACTION=1 \
POETRY_CACHE_DIR=/tmp/poetry
COPY pyproject.toml poetry.lock ./
RUN ["poetry", "install", "--only", "main", "--no-root"]
COPY . .
RUN ["poetry", "install", "--only", "main"]
# Runtime stage: copy the venv + app onto a clean python base, nonroot.
FROM ghcr.io/quenchworks/images/python:3.14.7 AS runtime
WORKDIR /app
ENV PATH="/app/.venv/bin:$PATH" \
PYTHONUNBUFFERED=1
COPY --from=build /app/.venv /app/.venv
COPY --from=build /app /app
USER 1001
EXPOSE 8000
CMD ["python", "-m", "app"]

This Dockerfile is pinned to the 2.3.4 line. For the line-by-line walkthrough and ecosystem variants (npm/Yarn, pip/uv/Poetry, Maven/Gradle), see the Build a Python appguide.

Upstream project: https://python-poetry.org