-
Notifications
You must be signed in to change notification settings - Fork 0
Update dependency setuptools to v78 [SECURITY] #22
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
renovate
wants to merge
1
commit into
main
Choose a base branch
from
renovate/pypi-setuptools-vulnerability
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Reviewer's GuideUpgrade setuptools in requirements.txt from ~=70.0.0 to ~=78.1.1 to resolve a path traversal vulnerability (CVE-2025-47273). Sequence Diagram: CVE-2025-47273 Path Traversal Vulnerability in setuptools < 78.1.1sequenceDiagram
autonumber
actor Attacker
participant UserProcess as "User Process (using setuptools)"
participant PackageIndex as "setuptools.PackageIndex._download_url (<78.1.1)"
participant Utils as "Utility functions (e.g. egg_info_for_url)"
participant OSPath as "os.path"
participant Filesystem
Attacker-->>UserProcess: Provides malicious URL (e.g., in package metadata or index)
UserProcess->>+PackageIndex: Calls _download_url(malicious_url, "/intended/tmp/dir")
PackageIndex->>+Utils: egg_info_for_url(malicious_url)
Utils-->>-PackageIndex: Returns 'name' derived from URL (e.g., "../../../../etc/passwd" or "/etc/passwd")
PackageIndex->>PackageIndex: Insufficient sanitization of 'name'
PackageIndex->>+OSPath: join("/intended/tmp/dir", name)
OSPath-->>-PackageIndex: filename (e.g., "/etc/passwd" or "/intended/tmp/dir/../../../../etc/passwd")
Note right of OSPath: If 'name' is absolute, initial path is discarded.
Note right of OSPath: '..' can lead to path traversal.
PackageIndex->>+Filesystem: Writes downloaded content to 'filename'
Filesystem-->>-PackageIndex: File written to unintended arbitrary location
PackageIndex-->>-UserProcess: Operation completes, potentially compromising system
File-Level Changes
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
e1ca4e8 to
7d9964f
Compare
7d9964f to
9ee1d0c
Compare
66294af to
41c990f
Compare
41c990f to
24bc0ab
Compare
24bc0ab to
4a55c69
Compare
4a55c69 to
55b7676
Compare
55b7676 to
d8ed53c
Compare
0d608be to
67f961c
Compare
8252ceb to
1fd83b9
Compare
1fd83b9 to
b3101be
Compare
b3101be to
a7eff52
Compare
a7eff52 to
4125da3
Compare
4125da3 to
9ef7beb
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
~=70.0.0->~=78.1.1GitHub Vulnerability Alerts
CVE-2025-47273
Summary
A path traversal vulnerability in
PackageIndexwas fixed in setuptools version 78.1.1Details
Here: https://github.com/pypa/setuptools/blob/6ead555c5fb29bc57fe6105b1bffc163f56fd558/setuptools/package_index.py#L810C1-L825C88
os.path.join()discards the first argumenttmpdirif the second begins with a slash or drive letter.nameis 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.1Compare Source
v78.1.0Compare Source
v78.0.2Compare Source
v78.0.1Compare Source
v77.0.3Compare Source
v77.0.1Compare Source
v76.1.0Compare Source
v76.0.0Compare Source
v75.9.1Compare Source
v75.9.0Compare Source
v75.8.2Compare Source
v75.8.1Compare Source
v75.8.0Compare Source
v75.7.0Compare Source
v75.6.0Compare Source
v75.5.0Compare Source
v75.4.0Compare Source
v75.3.2Compare Source
v75.3.1Compare Source
v75.3.0Compare Source
v75.2.0Compare Source
v75.1.0Compare Source
v75.0.0Compare Source
v74.1.3Compare Source
v74.1.2Compare Source
v74.1.1Compare Source
v74.1.0Compare Source
v74.0.0Compare Source
v73.0.1Compare Source
v73.0.0Compare Source
v72.2.0Compare Source
v72.1.0Compare Source
v72.0.0Compare Source
v71.1.0Compare Source
v71.0.4Compare Source
v71.0.3Compare Source
v71.0.2Compare Source
v71.0.1Compare Source
v71.0.0Compare Source
v70.3.0Compare Source
v70.2.0Compare Source
v70.1.1Compare Source
v70.1.0Compare Source
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.