<?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://vulnerability.circl.lu</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 00:44:48 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-73625 — GitPython before 3.1.54 Remote Code Execution via kwarg value smuggling</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-73625</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; gitpython-developers GitPython&lt;/p&gt;
&lt;p&gt;GitPython versions before 3.1.54 contain a remote code execution vulnerability in the check_unsafe_options guard that can be bypassed by smuggling git options inside single-character kwarg values. Attackers can supply crafted option dictionaries to clone_from, fetch, pull, push, ls_remote, iter_commits, blame, or archive methods to execute arbitrary OS commands via the --upload-pack parameter.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; gitpython-developers GitPython&lt;/p&gt;
&lt;p&gt;GitPython versions before 3.1.54 contain a remote code execution vulnerability in the check_unsafe_options guard that can be bypassed by smuggling git options inside single-character kwarg values. Attackers can supply crafted option dictionaries to clone_from, fetch, pull, push, ls_remote, iter_commits, blame, or archive methods to execute arbitrary OS commands via the --upload-pack parameter.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-73625</guid>
    </item>
    <item>
      <title>GHSA-r9mr-m37c-5fr3 — GitPython: Unsafe git option guard bypass via single-character kwarg value token smuggling enables arbitrary command ex…</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-r9mr-m37c-5fr3</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: GitPython&lt;/p&gt;
&lt;p&gt;## Summary
GitPython&amp;#39;s `check_unsafe_options` guard (the control introduced by CVE-2026-42215 / GHSA-2f96 and hardened since) can be bypassed for **every** guarded method (`clone`/`clone_from`, `fetch`/`pull`/`push`, `ls_remote`, `iter_commits`, `blame`, `archive`) by smuggling an option token inside the VALUE of a single-character kwarg. In the default `allow_unsafe_options=False` configuration this yields arbitrary command execution via `--upload-pack`.&lt;/p&gt;
&lt;p&gt;## Root Cause
The guard builds its candidate option list from kwarg KEYS only: `_option_candidates([], {&amp;#34;n&amp;#34;:&amp;#34;--upload-pack=&amp;lt;cmd&amp;gt;&amp;#34;})` returns `[&amp;#39;-n&amp;#39;]` (cmd.py:1042-1046 derives the candidate from the key, never the value). `-n` is not on the denylist, so `check_unsafe_options` passes. But `transform_kwarg(&amp;#39;n&amp;#39;, value, split_single_char_options=True)` (cmd.py:1600-1606) emits **two** argv tokens `[&amp;#39;-n&amp;#39;, &amp;#39;--upload-pack=&amp;lt;cmd&amp;gt;&amp;#39;]`. git then parses the second token as `--upload-pack` and executes the attacker-supplied command. The guard never inspects the value that becomes a separate argv token.&lt;/p&gt;
&lt;p&gt;## Impact
Arbitrary OS command execution as the host process (via `--upload-pack`) in the default configuration, affecting all guarded methods since they all build candidates through the name-only `_option_candidates`.&lt;/p&gt;
&lt;p&gt;## Proof of Concept
```python
from git import Repo
Repo.clone_from(bare_repo, out_dir, n=&amp;#34;--upload-pack=touch /tmp/ACE;git-upload-pack&amp;#34;)
# /tmp/ACE created -&amp;gt; ACE. Direct-name form upload_pack=&amp;#34;...&amp;#34; is correctly BLOCKED.…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: GitPython&lt;/p&gt;
&lt;p&gt;## Summary
GitPython&amp;#39;s `check_unsafe_options` guard (the control introduced by CVE-2026-42215 / GHSA-2f96 and hardened since) can be bypassed for **every** guarded method (`clone`/`clone_from`, `fetch`/`pull`/`push`, `ls_remote`, `iter_commits`, `blame`, `archive`) by smuggling an option token inside the VALUE of a single-character kwarg. In the default `allow_unsafe_options=False` configuration this yields arbitrary command execution via `--upload-pack`.&lt;/p&gt;
&lt;p&gt;## Root Cause
The guard builds its candidate option list from kwarg KEYS only: `_option_candidates([], {&amp;#34;n&amp;#34;:&amp;#34;--upload-pack=&amp;lt;cmd&amp;gt;&amp;#34;})` returns `[&amp;#39;-n&amp;#39;]` (cmd.py:1042-1046 derives the candidate from the key, never the value). `-n` is not on the denylist, so `check_unsafe_options` passes. But `transform_kwarg(&amp;#39;n&amp;#39;, value, split_single_char_options=True)` (cmd.py:1600-1606) emits **two** argv tokens `[&amp;#39;-n&amp;#39;, &amp;#39;--upload-pack=&amp;lt;cmd&amp;gt;&amp;#39;]`. git then parses the second token as `--upload-pack` and executes the attacker-supplied command. The guard never inspects the value that becomes a separate argv token.&lt;/p&gt;
&lt;p&gt;## Impact
Arbitrary OS command execution as the host process (via `--upload-pack`) in the default configuration, affecting all guarded methods since they all build candidates through the name-only `_option_candidates`.&lt;/p&gt;
&lt;p&gt;## Proof of Concept
```python
from git import Repo
Repo.clone_from(bare_repo, out_dir, n=&amp;#34;--upload-pack=touch /tmp/ACE;git-upload-pack&amp;#34;)
# /tmp/ACE created -&amp;gt; ACE. Direct-name form upload_pack=&amp;#34;...&amp;#34; is correctly BLOCKED.…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-r9mr-m37c-5fr3</guid>
    </item>
    <item>
      <title>PYSEC-2026-3953</title>
      <link>https://vulnerability.circl.lu/vuln/pysec-2026-3953</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: gitpython&lt;/p&gt;
&lt;p&gt;GitPython versions before 3.1.54 contain a remote code execution vulnerability in the check_unsafe_options guard that can be bypassed by smuggling git options inside single-character kwarg values. Attackers can supply crafted option dictionaries to clone_from, fetch, pull, push, ls_remote, iter_commits, blame, or archive methods to execute arbitrary OS commands via the --upload-pack parameter.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: gitpython&lt;/p&gt;
&lt;p&gt;GitPython versions before 3.1.54 contain a remote code execution vulnerability in the check_unsafe_options guard that can be bypassed by smuggling git options inside single-character kwarg values. Attackers can supply crafted option dictionaries to clone_from, fetch, pull, push, ls_remote, iter_commits, blame, or archive methods to execute arbitrary OS commands via the --upload-pack parameter.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/pysec-2026-3953</guid>
    </item>
  </channel>
</rss>
