<?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, 31 Oct 2026 17:27:07 +0000</lastBuildDate>
    <item>
      <title>BIT-virtualenv-2026-113714 — virtualenv: Downloaded wheel selection and caching precede verification</title>
      <link>https://db.gcve.eu/vuln/bit-virtualenv-2026-113714</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Bitnami: virtualenv&lt;/p&gt;
&lt;p&gt;virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.9, download_wheel() writes package-index downloads directly into the reusable wheel/house cache before selecting a verification target from pip&amp;#39;s textual Saved output. With default-index digest comparison enabled, a controlled package index can inject a misleading Saved line through a discarded link&amp;#39;s data-requires-python attribute; this forged-line variant also requires knowledge of an absolute path to the genuine bundled wheel. The wrong path can then be hashed, while a digest mismatch leaves the rejected archive in the cache for later selection without verification. A separate rejected-cache-file variant requires control over downloaded data or archive selection but not the forged-line prerequisites. Explicit custom-index exceptions are outside the promised PyPI comparison, and the issue does not independently bypass TLS or establish control of default PyPI. This issue is fixed in version 21.14.9.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Bitnami: virtualenv&lt;/p&gt;
&lt;p&gt;virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.9, download_wheel() writes package-index downloads directly into the reusable wheel/house cache before selecting a verification target from pip&amp;#39;s textual Saved output. With default-index digest comparison enabled, a controlled package index can inject a misleading Saved line through a discarded link&amp;#39;s data-requires-python attribute; this forged-line variant also requires knowledge of an absolute path to the genuine bundled wheel. The wrong path can then be hashed, while a digest mismatch leaves the rejected archive in the cache for later selection without verification. A separate rejected-cache-file variant requires control over downloaded data or archive selection but not the forged-line prerequisites. Explicit custom-index exceptions are outside the promised PyPI comparison, and the issue does not independently bypass TLS or establish control of default PyPI. This issue is fixed in version 21.14.9.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/bit-virtualenv-2026-113714</guid>
    </item>
    <item>
      <title>CVE-2026-113714 — virtualenv: Downloaded wheel selection and caching precede verification</title>
      <link>https://db.gcve.eu/vuln/cve-2026-113714</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.14.9, download_wheel() writes package-index downloads directly into the reusable wheel/house cache before selecting a verification target from pip&amp;#39;s textual Saved output. With default-index digest comparison enabled, a controlled package index can inject a misleading Saved line through a discarded link&amp;#39;s data-requires-python attribute; this forged-line variant also requires knowledge of an absolute path to the genuine bundled wheel. The wrong path can then be hashed, while a digest mismatch leaves the rejected archive in the cache for later selection without verification. A separate rejected-cache-file variant requires control over downloaded data or archive selection but not the forged-line prerequisites. Explicit custom-index exceptions are outside the promised PyPI comparison, and the issue does not independently bypass TLS or establish control of default PyPI. This issue is fixed in version 21.14.9.&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.14.9, download_wheel() writes package-index downloads directly into the reusable wheel/house cache before selecting a verification target from pip&amp;#39;s textual Saved output. With default-index digest comparison enabled, a controlled package index can inject a misleading Saved line through a discarded link&amp;#39;s data-requires-python attribute; this forged-line variant also requires knowledge of an absolute path to the genuine bundled wheel. The wrong path can then be hashed, while a digest mismatch leaves the rejected archive in the cache for later selection without verification. A separate rejected-cache-file variant requires control over downloaded data or archive selection but not the forged-line prerequisites. Explicit custom-index exceptions are outside the promised PyPI comparison, and the issue does not independently bypass TLS or establish control of default PyPI. This issue is fixed in version 21.14.9.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-113714</guid>
    </item>
    <item>
      <title>GHSA-494p-63j8-28p3 — virtualenv: Downloaded wheel selection and caching precede verification</title>
      <link>https://db.gcve.eu/vuln/ghsa-494p-63j8-28p3</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: virtualenv&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;Wheel downloads go directly into the reusable wheelhouse, while the verification target is selected from pip&amp;#39;s textual
output. A verification failure does not remove the downloaded file from that cache.&lt;/p&gt;
&lt;p&gt;Anthropic&amp;#39;s OSS Scanner reported this as `ANT-2026-ST00DRO3` in `virtualenv-20261015-005`, received on 15 October 2026.&lt;/p&gt;
&lt;p&gt;## Affected area&lt;/p&gt;
&lt;p&gt;Download selection and promotion into the reusable wheel cache.&lt;/p&gt;
&lt;p&gt;## Attacker-controlled input&lt;/p&gt;
&lt;p&gt;A download must fail verification, or the archive selected from pip output must differ from the file later reused.
Default-index digest verification must be enabled. Existing custom-index exceptions are outside the promised PyPI
comparison.&lt;/p&gt;
&lt;p&gt;## Affected code&lt;/p&gt;
&lt;p&gt;The relevant 21.14.8 source is in
[wheel download and digest check](https://github.com/pypa/virtualenv/blob/a795ab116356afde11039cf2763d77e8a06da738/src/virtualenv/seed/wheels/acquire.py).&lt;/p&gt;
&lt;p&gt;## Mechanism&lt;/p&gt;
&lt;p&gt;`download_wheel()` tells pip to write directly into the reusable `wheel/house` cache. It then selects a path to hash
from the first `Saved ` line in pip&amp;#39;s stdout, rather than from the file pip actually placed there. A package index can
inject such a line through a discarded link&amp;#39;s `data-requires-python` attribute. A separate failure exists without the
forged line: a digest mismatch raises after the downloaded wheel has entered the cache, and the rejected bytes remain
there. Later wheel selection does not hash the cached file again.&lt;/p&gt;
&lt;p&gt;## Reproduction and evidence&lt;/p&gt;
&lt;p&gt;The scanner used…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: virtualenv&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;Wheel downloads go directly into the reusable wheelhouse, while the verification target is selected from pip&amp;#39;s textual
output. A verification failure does not remove the downloaded file from that cache.&lt;/p&gt;
&lt;p&gt;Anthropic&amp;#39;s OSS Scanner reported this as `ANT-2026-ST00DRO3` in `virtualenv-20261015-005`, received on 15 October 2026.&lt;/p&gt;
&lt;p&gt;## Affected area&lt;/p&gt;
&lt;p&gt;Download selection and promotion into the reusable wheel cache.&lt;/p&gt;
&lt;p&gt;## Attacker-controlled input&lt;/p&gt;
&lt;p&gt;A download must fail verification, or the archive selected from pip output must differ from the file later reused.
Default-index digest verification must be enabled. Existing custom-index exceptions are outside the promised PyPI
comparison.&lt;/p&gt;
&lt;p&gt;## Affected code&lt;/p&gt;
&lt;p&gt;The relevant 21.14.8 source is in
[wheel download and digest check](https://github.com/pypa/virtualenv/blob/a795ab116356afde11039cf2763d77e8a06da738/src/virtualenv/seed/wheels/acquire.py).&lt;/p&gt;
&lt;p&gt;## Mechanism&lt;/p&gt;
&lt;p&gt;`download_wheel()` tells pip to write directly into the reusable `wheel/house` cache. It then selects a path to hash
from the first `Saved ` line in pip&amp;#39;s stdout, rather than from the file pip actually placed there. A package index can
inject such a line through a discarded link&amp;#39;s `data-requires-python` attribute. A separate failure exists without the
forged line: a digest mismatch raises after the downloaded wheel has entered the cache, and the rejected bytes remain
there. Later wheel selection does not hash the cached file again.&lt;/p&gt;
&lt;p&gt;## Reproduction and evidence&lt;/p&gt;
&lt;p&gt;The scanner used…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-494p-63j8-28p3</guid>
    </item>
  </channel>
</rss>
