<?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>Thu, 01 Oct 2026 07:15:25 +0000</lastBuildDate>
    <item>
      <title>BREW-cloudiscovery-CVE-2026-102930 — Downloaded seed wheels (pip/setuptools) are not integrity-checked before use</title>
      <link>https://db.gcve.eu/vuln/brew-cloudiscovery-cve-2026-102930</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Homebrew: cloudiscovery&lt;/p&gt;
&lt;p&gt;`download_wheel()` runs `pip download` and hands the result straight to the
seeder, with nothing checking the bytes it gets back. The embedded pip and
setuptools wheels carry a `BUNDLE_SHA256` that virtualenv checks on every load,
but a wheel fetched over the network for the periodic-update feature or the
`--download` flag had no equivalent verification.&lt;/p&gt;
&lt;p&gt;A compromised index, a stale mirror, or a MITM&amp;#39;d download (when TLS is
intercepted, e.g. via a misconfigured or malicious CA) could substitute a
different wheel under the same distribution/version/filename, and virtualenv
would cache and seed it into every environment created afterward with no
warning.&lt;/p&gt;
&lt;p&gt;Fixed in 21.7.12 by computing the downloaded wheel&amp;#39;s sha256 and comparing it
against the digest PyPI&amp;#39;s public JSON API reports for that exact release,
independent of which index actually served the file. The check is skipped, not
treated as failure, when a custom index (`PIP_INDEX_URL`,
`PIP_EXTRA_INDEX_URL`, `PIP_INDEX`) is configured, since a private index can
legitimately serve a different, intentionally rebuilt wheel.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Homebrew: cloudiscovery&lt;/p&gt;
&lt;p&gt;`download_wheel()` runs `pip download` and hands the result straight to the
seeder, with nothing checking the bytes it gets back. The embedded pip and
setuptools wheels carry a `BUNDLE_SHA256` that virtualenv checks on every load,
but a wheel fetched over the network for the periodic-update feature or the
`--download` flag had no equivalent verification.&lt;/p&gt;
&lt;p&gt;A compromised index, a stale mirror, or a MITM&amp;#39;d download (when TLS is
intercepted, e.g. via a misconfigured or malicious CA) could substitute a
different wheel under the same distribution/version/filename, and virtualenv
would cache and seed it into every environment created afterward with no
warning.&lt;/p&gt;
&lt;p&gt;Fixed in 21.7.12 by computing the downloaded wheel&amp;#39;s sha256 and comparing it
against the digest PyPI&amp;#39;s public JSON API reports for that exact release,
independent of which index actually served the file. The check is skipped, not
treated as failure, when a custom index (`PIP_INDEX_URL`,
`PIP_EXTRA_INDEX_URL`, `PIP_INDEX`) is configured, since a private index can
legitimately serve a different, intentionally rebuilt wheel.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/brew-cloudiscovery-cve-2026-102930</guid>
    </item>
    <item>
      <title>CVE-2026-102930 — virtualenv: Downloaded seed wheels (pip/setuptools) are not integrity-checked before use</title>
      <link>https://db.gcve.eu/vuln/cve-2026-102930</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; pypa virtualenv&lt;/p&gt;
&lt;p&gt;virtualenv is a tool for creating isolated virtual python environments. Prior to 21.7.12, download_wheel() accepts pip and setuptools seed wheels fetched for periodic updates or the --download option without checking their bytes against an authoritative digest equivalent to the embedded wheels&amp;#39; BUNDLE_SHA256 verification. A compromised index, stale mirror, or intercepted TLS connection can substitute a different wheel under the requested distribution, version, and filename, after which virtualenv caches and seeds the attacker-controlled wheel into subsequently created environments. The verification applies to the default PyPI path and is intentionally skipped when PIP_INDEX_URL, PIP_EXTRA_INDEX_URL, or PIP_INDEX configures a custom index that may legitimately publish rebuilt wheels. This issue is fixed in version 21.7.12.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; pypa virtualenv&lt;/p&gt;
&lt;p&gt;virtualenv is a tool for creating isolated virtual python environments. Prior to 21.7.12, download_wheel() accepts pip and setuptools seed wheels fetched for periodic updates or the --download option without checking their bytes against an authoritative digest equivalent to the embedded wheels&amp;#39; BUNDLE_SHA256 verification. A compromised index, stale mirror, or intercepted TLS connection can substitute a different wheel under the requested distribution, version, and filename, after which virtualenv caches and seeds the attacker-controlled wheel into subsequently created environments. The verification applies to the default PyPI path and is intentionally skipped when PIP_INDEX_URL, PIP_EXTRA_INDEX_URL, or PIP_INDEX configures a custom index that may legitimately publish rebuilt wheels. This issue is fixed in version 21.7.12.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-102930</guid>
    </item>
    <item>
      <title>PYSEC-2026-4011 — Downloaded seed wheels (pip/setuptools) are not integrity-checked before use</title>
      <link>https://db.gcve.eu/vuln/pysec-2026-4011</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: virtualenv&lt;/p&gt;
&lt;p&gt;`download_wheel()` runs `pip download` and hands the result straight to the
seeder, with nothing checking the bytes it gets back. The embedded pip and
setuptools wheels carry a `BUNDLE_SHA256` that virtualenv checks on every load,
but a wheel fetched over the network for the periodic-update feature or the
`--download` flag had no equivalent verification.&lt;/p&gt;
&lt;p&gt;A compromised index, a stale mirror, or a MITM&amp;#39;d download (when TLS is
intercepted, e.g. via a misconfigured or malicious CA) could substitute a
different wheel under the same distribution/version/filename, and virtualenv
would cache and seed it into every environment created afterward with no
warning.&lt;/p&gt;
&lt;p&gt;Fixed in 21.7.12 by computing the downloaded wheel&amp;#39;s sha256 and comparing it
against the digest PyPI&amp;#39;s public JSON API reports for that exact release,
independent of which index actually served the file. The check is skipped, not
treated as failure, when a custom index (`PIP_INDEX_URL`,
`PIP_EXTRA_INDEX_URL`, `PIP_INDEX`) is configured, since a private index can
legitimately serve a different, intentionally rebuilt wheel.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: virtualenv&lt;/p&gt;
&lt;p&gt;`download_wheel()` runs `pip download` and hands the result straight to the
seeder, with nothing checking the bytes it gets back. The embedded pip and
setuptools wheels carry a `BUNDLE_SHA256` that virtualenv checks on every load,
but a wheel fetched over the network for the periodic-update feature or the
`--download` flag had no equivalent verification.&lt;/p&gt;
&lt;p&gt;A compromised index, a stale mirror, or a MITM&amp;#39;d download (when TLS is
intercepted, e.g. via a misconfigured or malicious CA) could substitute a
different wheel under the same distribution/version/filename, and virtualenv
would cache and seed it into every environment created afterward with no
warning.&lt;/p&gt;
&lt;p&gt;Fixed in 21.7.12 by computing the downloaded wheel&amp;#39;s sha256 and comparing it
against the digest PyPI&amp;#39;s public JSON API reports for that exact release,
independent of which index actually served the file. The check is skipped, not
treated as failure, when a custom index (`PIP_INDEX_URL`,
`PIP_EXTRA_INDEX_URL`, `PIP_INDEX`) is configured, since a private index can
legitimately serve a different, intentionally rebuilt wheel.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/pysec-2026-4011</guid>
    </item>
  </channel>
</rss>
