<?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, 22 Oct 2026 23:15:31 +0000</lastBuildDate>
    <item>
      <title>BREW-charm-tools-CVE-2026-113722 — virtualenv: Generated POSIX console launchers interpret destination paths as shell syntax</title>
      <link>https://db.gcve.eu/vuln/brew-charm-tools-cve-2026-113722</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Homebrew: charm-tools&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;A destination path supplied to virtualenv can be interpreted as shell syntax by a generated POSIX console launcher. The
app-data seeder and pip delegate launcher generation to distlib but supply the interpreter path in a form that does not
preserve it as literal data in the shell wrapper.&lt;/p&gt;
&lt;p&gt;## Affected area&lt;/p&gt;
&lt;p&gt;POSIX console scripts generated by the app-data seeder or pip when the interpreter path requires a shell wrapper.
Windows executable launchers are not affected by this path.&lt;/p&gt;
&lt;p&gt;## Attacker-controlled input&lt;/p&gt;
&lt;p&gt;An attacker must influence the environment destination passed to virtualenv, and the user must subsequently run a
generated launcher. The attacker does not need to modify an installed executable or control the user&amp;#39;s app-data cache.&lt;/p&gt;
&lt;p&gt;## Affected code&lt;/p&gt;
&lt;p&gt;The relevant 21.14.8 source is in
[ScriptMakerCustom](https://github.com/pypa/virtualenv/blob/a795ab116356afde11039cf2763d77e8a06da738/src/virtualenv/seed/embed/via_app_data/pip_install/base.py).&lt;/p&gt;
&lt;p&gt;## Mechanism&lt;/p&gt;
&lt;p&gt;The app-data seeder passes the environment&amp;#39;s interpreter path through `enquote_executable()` to distlib&amp;#39;s `ScriptMaker`.
It adds double quotes for a path with a space but does not escape shell expansions inside those quotes. When the path
has a space or the shebang exceeds 127 bytes, distlib emits a `#!/bin/sh` wrapper with a line shaped like
`&amp;#39;&amp;#39;&amp;#39;exec&amp;#39; &amp;#34;&amp;lt;path&amp;gt;&amp;#34; &amp;#34;$0&amp;#34; &amp;#34;$@&amp;#34;`. The shell expands `$(...)` and backticks in that path when the launcher is run. The same
wrapper must also parse as Python, which expo…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Homebrew: charm-tools&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;A destination path supplied to virtualenv can be interpreted as shell syntax by a generated POSIX console launcher. The
app-data seeder and pip delegate launcher generation to distlib but supply the interpreter path in a form that does not
preserve it as literal data in the shell wrapper.&lt;/p&gt;
&lt;p&gt;## Affected area&lt;/p&gt;
&lt;p&gt;POSIX console scripts generated by the app-data seeder or pip when the interpreter path requires a shell wrapper.
Windows executable launchers are not affected by this path.&lt;/p&gt;
&lt;p&gt;## Attacker-controlled input&lt;/p&gt;
&lt;p&gt;An attacker must influence the environment destination passed to virtualenv, and the user must subsequently run a
generated launcher. The attacker does not need to modify an installed executable or control the user&amp;#39;s app-data cache.&lt;/p&gt;
&lt;p&gt;## Affected code&lt;/p&gt;
&lt;p&gt;The relevant 21.14.8 source is in
[ScriptMakerCustom](https://github.com/pypa/virtualenv/blob/a795ab116356afde11039cf2763d77e8a06da738/src/virtualenv/seed/embed/via_app_data/pip_install/base.py).&lt;/p&gt;
&lt;p&gt;## Mechanism&lt;/p&gt;
&lt;p&gt;The app-data seeder passes the environment&amp;#39;s interpreter path through `enquote_executable()` to distlib&amp;#39;s `ScriptMaker`.
It adds double quotes for a path with a space but does not escape shell expansions inside those quotes. When the path
has a space or the shebang exceeds 127 bytes, distlib emits a `#!/bin/sh` wrapper with a line shaped like
`&amp;#39;&amp;#39;&amp;#39;exec&amp;#39; &amp;#34;&amp;lt;path&amp;gt;&amp;#34; &amp;#34;$0&amp;#34; &amp;#34;$@&amp;#34;`. The shell expands `$(...)` and backticks in that path when the launcher is run. The same
wrapper must also parse as Python, which expo…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/brew-charm-tools-cve-2026-113722</guid>
    </item>
    <item>
      <title>fkie_cve-2026-113722</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-113722</link>
      <description>&lt;p&gt;virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.9, virtualenv&amp;#39;s ScriptMakerCustom and pip pass an incompletely quoted interpreter path to distlib ScriptMaker when generating POSIX console scripts. When the path contains a space or produces a shebang longer than 127 bytes, distlib emits a /bin/sh wrapper whose double-quoted interpreter path still expands command substitutions and backticks. An attacker who influences the environment destination can therefore execute commands with the user&amp;#39;s privileges when the user later runs a generated launcher; environment creation and activation do not trigger the command. Existing launchers are not repaired by upgrading virtualenv alone and must be regenerated, while a later independent pip installation or upgrade can reintroduce an affected launcher because pip&amp;#39;s vendored distlib is unchanged. The virtualenv fix is released in version 21.14.9.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.9, virtualenv&amp;#39;s ScriptMakerCustom and pip pass an incompletely quoted interpreter path to distlib ScriptMaker when generating POSIX console scripts. When the path contains a space or produces a shebang longer than 127 bytes, distlib emits a /bin/sh wrapper whose double-quoted interpreter path still expands command substitutions and backticks. An attacker who influences the environment destination can therefore execute commands with the user&amp;#39;s privileges when the user later runs a generated launcher; environment creation and activation do not trigger the command. Existing launchers are not repaired by upgrading virtualenv alone and must be regenerated, while a later independent pip installation or upgrade can reintroduce an affected launcher because pip&amp;#39;s vendored distlib is unchanged. The virtualenv fix is released in version 21.14.9.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-113722</guid>
    </item>
    <item>
      <title>GHSA-c978-59m8-c77v — virtualenv: Generated POSIX console launchers interpret destination paths as shell syntax</title>
      <link>https://db.gcve.eu/vuln/ghsa-c978-59m8-c77v</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;A destination path supplied to virtualenv can be interpreted as shell syntax by a generated POSIX console launcher. The
app-data seeder and pip delegate launcher generation to distlib but supply the interpreter path in a form that does not
preserve it as literal data in the shell wrapper.&lt;/p&gt;
&lt;p&gt;## Affected area&lt;/p&gt;
&lt;p&gt;POSIX console scripts generated by the app-data seeder or pip when the interpreter path requires a shell wrapper.
Windows executable launchers are not affected by this path.&lt;/p&gt;
&lt;p&gt;## Attacker-controlled input&lt;/p&gt;
&lt;p&gt;An attacker must influence the environment destination passed to virtualenv, and the user must subsequently run a
generated launcher. The attacker does not need to modify an installed executable or control the user&amp;#39;s app-data cache.&lt;/p&gt;
&lt;p&gt;## Affected code&lt;/p&gt;
&lt;p&gt;The relevant 21.14.8 source is in
[ScriptMakerCustom](https://github.com/pypa/virtualenv/blob/a795ab116356afde11039cf2763d77e8a06da738/src/virtualenv/seed/embed/via_app_data/pip_install/base.py).&lt;/p&gt;
&lt;p&gt;## Mechanism&lt;/p&gt;
&lt;p&gt;The app-data seeder passes the environment&amp;#39;s interpreter path through `enquote_executable()` to distlib&amp;#39;s `ScriptMaker`.
It adds double quotes for a path with a space but does not escape shell expansions inside those quotes. When the path
has a space or the shebang exceeds 127 bytes, distlib emits a `#!/bin/sh` wrapper with a line shaped like
`&amp;#39;&amp;#39;&amp;#39;exec&amp;#39; &amp;#34;&amp;lt;path&amp;gt;&amp;#34; &amp;#34;$0&amp;#34; &amp;#34;$@&amp;#34;`. The shell expands `$(...)` and backticks in that path when the launcher is run. The same
wrapper must also parse as Python, which expo…&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;A destination path supplied to virtualenv can be interpreted as shell syntax by a generated POSIX console launcher. The
app-data seeder and pip delegate launcher generation to distlib but supply the interpreter path in a form that does not
preserve it as literal data in the shell wrapper.&lt;/p&gt;
&lt;p&gt;## Affected area&lt;/p&gt;
&lt;p&gt;POSIX console scripts generated by the app-data seeder or pip when the interpreter path requires a shell wrapper.
Windows executable launchers are not affected by this path.&lt;/p&gt;
&lt;p&gt;## Attacker-controlled input&lt;/p&gt;
&lt;p&gt;An attacker must influence the environment destination passed to virtualenv, and the user must subsequently run a
generated launcher. The attacker does not need to modify an installed executable or control the user&amp;#39;s app-data cache.&lt;/p&gt;
&lt;p&gt;## Affected code&lt;/p&gt;
&lt;p&gt;The relevant 21.14.8 source is in
[ScriptMakerCustom](https://github.com/pypa/virtualenv/blob/a795ab116356afde11039cf2763d77e8a06da738/src/virtualenv/seed/embed/via_app_data/pip_install/base.py).&lt;/p&gt;
&lt;p&gt;## Mechanism&lt;/p&gt;
&lt;p&gt;The app-data seeder passes the environment&amp;#39;s interpreter path through `enquote_executable()` to distlib&amp;#39;s `ScriptMaker`.
It adds double quotes for a path with a space but does not escape shell expansions inside those quotes. When the path
has a space or the shebang exceeds 127 bytes, distlib emits a `#!/bin/sh` wrapper with a line shaped like
`&amp;#39;&amp;#39;&amp;#39;exec&amp;#39; &amp;#34;&amp;lt;path&amp;gt;&amp;#34; &amp;#34;$0&amp;#34; &amp;#34;$@&amp;#34;`. The shell expands `$(...)` and backticks in that path when the launcher is run. The same
wrapper must also parse as Python, which expo…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-c978-59m8-c77v</guid>
    </item>
  </channel>
</rss>
