Skip to content

← Public intelligence

PyPI package

setuptools

Open actionable advisories and recorded vendor fixes. This public package view has no inventory attached and cannot establish whether your deployment is affected. A vendor fix never resolves your finding; verify your installed version and the source guidance.

Open advisories

6 actionable advisories, newest first. Withdrawn advisories and news are excluded. Coverage is partial.

  1. Low, CVSS 1.0PyPIAmendedPublished

    setuptools: Windows path escape via namespace_packages.txt during legacy wheel installation Description

    GHSA-xmj3-9gf7-h52w

    Affected
    • PyPI setuptools >= 38.2.2, < 84.1.0
    Fixed in
    84.1.0· Vendor fix available
    Issue
    On Windows, attacker-controlled content in a wheel's .dist-info/namespacepackages.txt can cause setuptools' legacy wheel installation path to create an init.py outside the requested destinationeggdir. The attacker can influence the destination path, but not the contents of the created file. Details Tested setuptools commit: 6ead555c5fb29bc57fe6105b1bffc163f56fd558 Relevant source: setuptools/wheel.py SHA-256: 359b7e0d5dd8c3135653abe08a8ed5dc0352eadfd7df22cb5e2b5303b7c3cafd The relevant call path is: Wheel(wheelpath).installasegg(destination) → installasegg → convertmetadata → fixnamespacepackages A wheel can provide attacker-controlled content in: <distribution.dist-info/namespacepackages.txt The namespace value is eventually used approximately as: markdown PoC The reproduction was performed entirely inside a disposable temporary directory. Layout: A synthetic wheel was created containing: demopkg-1.0.dist-info/namespacepackages.txt whose content was the absolute path of:…

    Recommended action: Upgrade to 84.1.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  2. Medium, CVSS 6.1PyPIAmendedPublished

    setuptools: MANIFEST.in exclusion bypass in sdist via Unicode normalization collision (NFC/NFD) on macOS APFS/HFS+

    CVE-2026-59890 · GHSA-h35f-9h28-mq5c

    Affected
    • PyPI setuptools < 83.0.0
    Fixed in
    83.0.0· Vendor fix available
    Issue
    When building a source distribution (python -m build --sdist / setup.py sdist), setuptools' FileList applies MANIFEST.in directives (exclude, global-exclude, recursive-exclude, prune) by matching a compiled glob against on-disk file names byte-for-byte, with no Unicode normalization. On normalization-preserving filesystems (notably macOS APFS and HFS+), a file written in NFD and a MANIFEST.in rule written in NFC refer to the same file but are byte-distinct, so the exclusion silently fails to match. A file the maintainer intended to exclude is then packed into the .tar.gz and, if published, uploaded to the public, immutable PyPI index. Details File names in FileList.files come from os.walk (setuptools/distutils/filelist.py, findallsimple), so on APFS a file written NFD is offered to the matcher in NFD, while the MANIFEST.in pattern carries the author's editor form (typically NFC). The matching path performs no canonicalization: A rule written NFC (café = 63 61 66 c3 a9) does…

    Recommended action: Upgrade to 83.0.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  3. High, CVSS 7.7PyPIAmendedPublished

    setuptools has a path traversal vulnerability in PackageIndex.download that leads to Arbitrary File Write

    CVE-2025-47273 · GHSA-5rjg-fvgr-3xxf

    Affected
    • PyPI setuptools < 78.1.1
    Fixed in
    78.1.1· Vendor fix available
    Issue
    A path traversal vulnerability in PackageIndex was fixed in setuptools version 78.1.1 Details Here: https://github.com/pypa/setuptools/blob/6ead555c5fb29bc57fe6105b1bffc163f56fd558/setuptools/packageindex.py#L810C1-L825C88 os.path.join() discards the first argument tmpdir if the second begins with a slash or drive letter. name is derived from a URL without sufficient sanitization. While there is some attempt to sanitize by replacing instances of '..' with '.', it is insufficient. Risk Assessment As easyinstall and packageindex are deprecated, the exploitation surface is reduced. However, it seems this could be exploited in a similar fashion like https://github.com/advisories/GHSA-r9hx-vwmv-q579, and as described by POC 4 in https://github.com/advisories/GHSA-cx63-2mw6-8hw5 report: via malicious URLs present on the pages of a package index. Impact An attacker would be allowed to write files to arbitrary locations on the filesystem with the permissions of the process running…

    Recommended action: Upgrade to 78.1.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  4. High, CVSS 7.5PyPIAmendedPublished

    setuptools vulnerable to Command Injection via package URL

    CVE-2024-6345 · GHSA-cx63-2mw6-8hw5

    Affected
    • PyPI setuptools < 70.0.0
    Fixed in
    70.0.0· Vendor fix available
    Issue
    A vulnerability in the packageindex module of pypa/setuptools versions up to 69.1.1 allows for remote code execution via its download functions. These functions, which are used to download packages from URLs provided by users or retrieved from package index servers, are susceptible to code injection. If these functions are exposed to user-controlled inputs, such as package URLs, they can execute arbitrary commands on the system. The issue is fixed in version 70.0.

    Recommended action: Upgrade to 70.0.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  5. High, CVSS 8.7PyPIAmendedPublished

    pypa/setuptools vulnerable to Regular Expression Denial of Service (ReDoS)

    CVE-2022-40897 · GHSA-r9hx-vwmv-q579

    Affected
    • PyPI setuptools < 65.5.1
    Fixed in
    65.5.1· Vendor fix available
    Issue
    Python Packaging Authority (PyPA)'s setuptools is a library designed to facilitate packaging Python projects. Setuptools version 65.5.0 and earlier could allow remote attackers to cause a denial of service by fetching malicious HTML from a PyPI package or custom PackageIndex page due to a vulnerable Regular Expression in packageindex. This has been patched in version 65.5.1.

    Recommended action: Upgrade to 65.5.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  6. High, CVSS 8.3PyPIAmendedPublished

    Setuptools vulnerable to Man-in-the-middle attacks

    CVE-2013-1633 · GHSA-27x4-j476-jp5f

    Affected
    • PyPI setuptools < 0.7
    Fixed in
    0.7· Vendor fix available
    Issue
    easyinstall in setuptools before 0.7 uses HTTP to retrieve packages from the PyPI repository, and does not perform integrity checks on package contents, which allows man-in-the-middle attackers to execute arbitrary code via a crafted response to the default use of the product.

    Recommended action: Upgrade to 0.7 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →