Skip to content

fix(deps): update dependency setuptools to v78 [security] #913

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 20, 2025

This PR contains the following updates:

Package Change Age Confidence
setuptools (changelog) ^75.0.0 -> ^78.0.0 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

GitHub Vulnerability Alerts

CVE-2025-47273

Summary

A path traversal vulnerability in PackageIndex was fixed in setuptools version 78.1.1

Details

    def _download_url(self, url, tmpdir):
        # Determine download filename
        #
        name, _fragment = egg_info_for_url(url)
        if name:
            while '..' in name:
                name = name.replace('..', '.').replace('\\', '_')
        else:
            name = "__downloaded__"  # default if URL has no path contents

        if name.endswith('.[egg.zip](http://egg.zip/)'):
            name = name[:-4]  # strip the extra .zip before download

 -->       filename = os.path.join(tmpdir, name)

Here: https://github.com/pypa/setuptools/blob/6ead555c5fb29bc57fe6105b1bffc163f56fd558/setuptools/package_index.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 easy_install and package_index are deprecated, the exploitation surface is reduced.
However, it seems this could be exploited in a similar fashion like GHSA-r9hx-vwmv-q579, and as described by POC 4 in 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 the Python code, which could escalate to RCE depending on the context.

References

https://huntr.com/bounties/d6362117-ad57-4e83-951f-b8141c6e7ca5
https://github.com/pypa/setuptools/issues/4946


Release Notes

pypa/setuptools (setuptools)

v78.1.1

Compare Source

v78.1.0

Compare Source

v78.0.2

Compare Source

v78.0.1

Compare Source

v77.0.3

Compare Source

v77.0.1

Compare Source

v76.1.0

Compare Source

v76.0.0

Compare Source

v75.9.1

Compare Source

v75.9.0

Compare Source

v75.8.2

Compare Source

v75.8.1

Compare Source


Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/pypi-setuptools-vulnerability branch from b8fd688 to 75e8b1b Compare May 20, 2025 03:25
@codecov-commenter
Copy link

codecov-commenter commented May 20, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.04%. Comparing base (5e58164) to head (36b434d).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #913   +/-   ##
=======================================
  Coverage   88.04%   88.04%           
=======================================
  Files          20       20           
  Lines        1171     1171           
=======================================
  Hits         1031     1031           
  Misses        140      140           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@renovate renovate bot force-pushed the renovate/pypi-setuptools-vulnerability branch 19 times, most recently from d2a6dd0 to 9032d3c Compare May 28, 2025 08:24
@renovate renovate bot force-pushed the renovate/pypi-setuptools-vulnerability branch 9 times, most recently from ebda92f to 987a2d5 Compare May 31, 2025 20:40
@renovate renovate bot force-pushed the renovate/pypi-setuptools-vulnerability branch 5 times, most recently from f943584 to 215282e Compare July 7, 2025 23:16
@renovate renovate bot force-pushed the renovate/pypi-setuptools-vulnerability branch 5 times, most recently from 138f3e5 to 2d2c259 Compare July 15, 2025 17:54
@renovate renovate bot force-pushed the renovate/pypi-setuptools-vulnerability branch 9 times, most recently from 509e8c9 to 91f40fe Compare July 21, 2025 19:15
@renovate renovate bot force-pushed the renovate/pypi-setuptools-vulnerability branch 6 times, most recently from f86c393 to 336f4a4 Compare July 30, 2025 23:26
@renovate renovate bot force-pushed the renovate/pypi-setuptools-vulnerability branch 3 times, most recently from 5280c24 to 9019732 Compare August 4, 2025 17:45
@renovate renovate bot force-pushed the renovate/pypi-setuptools-vulnerability branch from 9019732 to 36b434d Compare August 4, 2025 21:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant