<?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>Tue, 29 Sep 2026 19:32:01 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-73623 — GitPython before 3.1.54 Remote Code Execution via --template</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-73623</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; gitpython-developers GitPython&lt;/p&gt;
&lt;p&gt;GitPython before 3.1.54 contains an incomplete denylist in unsafe_git_clone_options that omits --template, allowing attackers to achieve arbitrary command execution during clone operations. Attackers can supply --template pointing to a directory containing malicious post-checkout hooks that execute when git clones the repository.&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 before 3.1.54 contains an incomplete denylist in unsafe_git_clone_options that omits --template, allowing attackers to achieve arbitrary command execution during clone operations. Attackers can supply --template pointing to a directory containing malicious post-checkout hooks that execute when git clones the repository.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-73623</guid>
    </item>
    <item>
      <title>GHSA-6p8h-3wgx-97gf — GitPython: Incomplete unsafe_git_clone_options denylist omits --template enabling arbitrary command execution via clone…</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-6p8h-3wgx-97gf</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 `unsafe_git_clone_options` denylist omits `--template`. `git clone --template=&amp;lt;dir&amp;gt;` copies `&amp;lt;dir&amp;gt;/hooks/` into the new repository and runs them (`post-checkout` fires during clone), so a caller who can influence clone options can achieve arbitrary command execution in the default `allow_unsafe_options=False` configuration.&lt;/p&gt;
&lt;p&gt;## Root Cause
`base.py:145-152` defines `unsafe_git_clone_options = [&amp;#34;--upload-pack&amp;#34;,&amp;#34;-u&amp;#34;,&amp;#34;--config&amp;#34;,&amp;#34;-c&amp;#34;]` — `--template` is absent. The guard candidate `[&amp;#39;--template&amp;#39;]` passes `check_unsafe_options` (verified). git copies the hook directory and executes `post-checkout` at checkout time. git&amp;#39;s `protocol.allow`/`GIT_ALLOW_PROTOCOL` do not gate `--template`; the incomplete denylist is the only defense.&lt;/p&gt;
&lt;p&gt;## Impact
Arbitrary OS command execution during clone (default config). Requires an attacker-readable directory containing an executable hook — a genuine second precondition (realistic via shared filesystems, upload dirs, `/tmp`, or attacker-writable network paths), reflected as AC:H.&lt;/p&gt;
&lt;p&gt;## Proof of Concept
```python
# attacker stages &amp;lt;dir&amp;gt;/hooks/post-checkout (chmod +x)
from git import Repo
Repo.clone_from(src, dst, template=&amp;#39;&amp;lt;dir&amp;gt;&amp;#39;)   # post-checkout hook executes -&amp;gt; marker created (verified)
```&lt;/p&gt;
&lt;p&gt;## Attack Chain
1. Setup: attacker stages `&amp;lt;dir&amp;gt;/hooks/post-checkout` (chmod +x). Guard: n/a (filesystem).
2. Entry: `Repo.clone_from(url, path, template=&amp;#39;&amp;lt;dir&amp;gt;&amp;#39;)`. Guard: `check_unsafe_options(candidates=[&amp;#39;--template&amp;#39;], unsafe=unsafe_git_c…&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 `unsafe_git_clone_options` denylist omits `--template`. `git clone --template=&amp;lt;dir&amp;gt;` copies `&amp;lt;dir&amp;gt;/hooks/` into the new repository and runs them (`post-checkout` fires during clone), so a caller who can influence clone options can achieve arbitrary command execution in the default `allow_unsafe_options=False` configuration.&lt;/p&gt;
&lt;p&gt;## Root Cause
`base.py:145-152` defines `unsafe_git_clone_options = [&amp;#34;--upload-pack&amp;#34;,&amp;#34;-u&amp;#34;,&amp;#34;--config&amp;#34;,&amp;#34;-c&amp;#34;]` — `--template` is absent. The guard candidate `[&amp;#39;--template&amp;#39;]` passes `check_unsafe_options` (verified). git copies the hook directory and executes `post-checkout` at checkout time. git&amp;#39;s `protocol.allow`/`GIT_ALLOW_PROTOCOL` do not gate `--template`; the incomplete denylist is the only defense.&lt;/p&gt;
&lt;p&gt;## Impact
Arbitrary OS command execution during clone (default config). Requires an attacker-readable directory containing an executable hook — a genuine second precondition (realistic via shared filesystems, upload dirs, `/tmp`, or attacker-writable network paths), reflected as AC:H.&lt;/p&gt;
&lt;p&gt;## Proof of Concept
```python
# attacker stages &amp;lt;dir&amp;gt;/hooks/post-checkout (chmod +x)
from git import Repo
Repo.clone_from(src, dst, template=&amp;#39;&amp;lt;dir&amp;gt;&amp;#39;)   # post-checkout hook executes -&amp;gt; marker created (verified)
```&lt;/p&gt;
&lt;p&gt;## Attack Chain
1. Setup: attacker stages `&amp;lt;dir&amp;gt;/hooks/post-checkout` (chmod +x). Guard: n/a (filesystem).
2. Entry: `Repo.clone_from(url, path, template=&amp;#39;&amp;lt;dir&amp;gt;&amp;#39;)`. Guard: `check_unsafe_options(candidates=[&amp;#39;--template&amp;#39;], unsafe=unsafe_git_c…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-6p8h-3wgx-97gf</guid>
    </item>
    <item>
      <title>PYSEC-2026-3952</title>
      <link>https://vulnerability.circl.lu/vuln/pysec-2026-3952</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: gitpython&lt;/p&gt;
&lt;p&gt;GitPython before 3.1.54 contains an incomplete denylist in unsafe_git_clone_options that omits --template, allowing attackers to achieve arbitrary command execution during clone operations. Attackers can supply --template pointing to a directory containing malicious post-checkout hooks that execute when git clones the repository.&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 before 3.1.54 contains an incomplete denylist in unsafe_git_clone_options that omits --template, allowing attackers to achieve arbitrary command execution during clone operations. Attackers can supply --template pointing to a directory containing malicious post-checkout hooks that execute when git clones the repository.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/pysec-2026-3952</guid>
    </item>
  </channel>
</rss>
