<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sat, 03 Oct 2026 05:04:23 +0000</lastBuildDate>
    <item>
      <title>GHSA-5rjg-fvgr-3xxf — setuptools has a path traversal vulnerability in PackageIndex.download that leads to Arbitrary File Write</title>
      <link>https://db.gcve.eu/vuln/ghsa-5rjg-fvgr-3xxf</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: setuptools&lt;/p&gt;
&lt;p&gt;### Summary 
A path traversal vulnerability in `PackageIndex` was fixed in setuptools version 78.1.1&lt;/p&gt;
&lt;p&gt;### Details
```
    def _download_url(self, url, tmpdir):
        # Determine download filename
        #
        name, _fragment = egg_info_for_url(url)
        if name:
            while &amp;#39;..&amp;#39; in name:
                name = name.replace(&amp;#39;..&amp;#39;, &amp;#39;.&amp;#39;).replace(&amp;#39;\\&amp;#39;, &amp;#39;_&amp;#39;)
        else:
            name = &amp;#34;__downloaded__&amp;#34;  # default if URL has no path contents&lt;/p&gt;
&lt;p&gt;if name.endswith(&amp;#39;.[egg.zip](http://egg.zip/)&amp;#39;):
            name = name[:-4]  # strip the extra .zip before download&lt;/p&gt;
&lt;p&gt;--&amp;gt;       filename = os.path.join(tmpdir, name)
```&lt;/p&gt;
&lt;p&gt;Here: https://github.com/pypa/setuptools/blob/6ead555c5fb29bc57fe6105b1bffc163f56fd558/setuptools/package_index.py#L810C1-L825C88&lt;/p&gt;
&lt;p&gt;`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 &amp;#39;..&amp;#39; with &amp;#39;.&amp;#39;, it is insufficient.&lt;/p&gt;
&lt;p&gt;### 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 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.&lt;/p&gt;
&lt;p&gt;### Impact
An attacker would be allowed to write files to arbitrary locations on th…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: setuptools&lt;/p&gt;
&lt;p&gt;### Summary 
A path traversal vulnerability in `PackageIndex` was fixed in setuptools version 78.1.1&lt;/p&gt;
&lt;p&gt;### Details
```
    def _download_url(self, url, tmpdir):
        # Determine download filename
        #
        name, _fragment = egg_info_for_url(url)
        if name:
            while &amp;#39;..&amp;#39; in name:
                name = name.replace(&amp;#39;..&amp;#39;, &amp;#39;.&amp;#39;).replace(&amp;#39;\\&amp;#39;, &amp;#39;_&amp;#39;)
        else:
            name = &amp;#34;__downloaded__&amp;#34;  # default if URL has no path contents&lt;/p&gt;
&lt;p&gt;if name.endswith(&amp;#39;.[egg.zip](http://egg.zip/)&amp;#39;):
            name = name[:-4]  # strip the extra .zip before download&lt;/p&gt;
&lt;p&gt;--&amp;gt;       filename = os.path.join(tmpdir, name)
```&lt;/p&gt;
&lt;p&gt;Here: https://github.com/pypa/setuptools/blob/6ead555c5fb29bc57fe6105b1bffc163f56fd558/setuptools/package_index.py#L810C1-L825C88&lt;/p&gt;
&lt;p&gt;`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 &amp;#39;..&amp;#39; with &amp;#39;.&amp;#39;, it is insufficient.&lt;/p&gt;
&lt;p&gt;### 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 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.&lt;/p&gt;
&lt;p&gt;### Impact
An attacker would be allowed to write files to arbitrary locations on th…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-5rjg-fvgr-3xxf</guid>
    </item>
  </channel>
</rss>
