<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-09-29T07:27:39.097941+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/cve-2026-76220</id>
    <title>CVE-2026-76220 — GitPython before 3.1.58 Command Execution via split_single_char_options</title>
    <updated>2026-09-29T07:27:39.102351+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> gitpython-developers GitPython</p>
<p>GitPython before 3.1.58 contains a command execution vulnerability in the check_unsafe_options guard that can be bypassed by combining a single-character kwarg with split_single_char_options=False. Attackers can supply a crafted kwargs dictionary to guarded methods like clone_from to emit a joined token parsed as --upload-pack, enabling arbitrary OS command execution at default allow_unsafe_options=False.</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-76220"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-wvpp-8hx9-p66j</id>
    <title>GHSA-wvpp-8hx9-p66j — GitPython: Unsafe git option guard bypass via split_single_char_options=False short-option token smuggling enables comm…</title>
    <updated>2026-09-29T07:27:39.102452+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: GitPython</p>
<p>## Summary
The `check_unsafe_options` guard can be bypassed on every guarded method (clone/clone_from, fetch/pull/push, ls_remote, iter_commits, blame, archive) by combining a single-character kwarg with `split_single_char_options=False`. The guard's candidate list omits the smuggled option, but `transform_kwarg` emits a JOINED `-n&lt;value&gt;` argv token that git parses as `--upload-pack=&lt;cmd&gt;`, yielding arbitrary command execution at the default `allow_unsafe_options=False`. This is an incomplete-fix bypass of commit `e8d0fbf7` (the fix for GHSA-r9mr-m37c-5fr3), which only emits value-derived candidates when `split_single_char_options` is True.</p>
<p>## Root Cause
`_option_candidates` derives value-token candidates only under `if len(key)==1 and split_single_char_options:` (cmd.py:1048, added by `e8d0fbf7`). With `split_single_char_options=False`, `_option_candidates([], {"n":"utouch &lt;cmd&gt;;git-upload-pack"})` returns only `['-n']` (not on the denylist), so the guard passes. But `transform_kwarg('n', value, split_single_char_options=False)` emits the JOINED token `-nutouch &lt;cmd&gt;;git-upload-pack` (cmd.py:1631). git clusters value-less short flags then parses `-u&lt;cmd&gt;` = `--upload-pack=&lt;cmd&gt;` → command execution. The hardened guard WOULD block the joined token if it saw it — the flaw is it never receives it.</p>
<p>## Impact
Arbitrary OS command execution as the host process (via `--upload-pack`) at default `allow_unsafe_options=False`, affecting all guarded methods that forward kwargs. Prec…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-wvpp-8hx9-p66j"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/pysec-2026-3843</id>
    <title>PYSEC-2026-3843 — GitPython: Unsafe git option guard bypass via split_single_char_options=False short-option token smuggling enables comm…</title>
    <updated>2026-09-29T07:27:39.102559+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: gitpython</p>
<p>## Summary
The `check_unsafe_options` guard can be bypassed on every guarded method (clone/clone_from, fetch/pull/push, ls_remote, iter_commits, blame, archive) by combining a single-character kwarg with `split_single_char_options=False`. The guard's candidate list omits the smuggled option, but `transform_kwarg` emits a JOINED `-n&lt;value&gt;` argv token that git parses as `--upload-pack=&lt;cmd&gt;`, yielding arbitrary command execution at the default `allow_unsafe_options=False`. This is an incomplete-fix bypass of commit `e8d0fbf7` (the fix for GHSA-r9mr-m37c-5fr3), which only emits value-derived candidates when `split_single_char_options` is True.</p>
<p>## Root Cause
`_option_candidates` derives value-token candidates only under `if len(key)==1 and split_single_char_options:` (cmd.py:1048, added by `e8d0fbf7`). With `split_single_char_options=False`, `_option_candidates([], {"n":"utouch &lt;cmd&gt;;git-upload-pack"})` returns only `['-n']` (not on the denylist), so the guard passes. But `transform_kwarg('n', value, split_single_char_options=False)` emits the JOINED token `-nutouch &lt;cmd&gt;;git-upload-pack` (cmd.py:1631). git clusters value-less short flags then parses `-u&lt;cmd&gt;` = `--upload-pack=&lt;cmd&gt;` → command execution. The hardened guard WOULD block the joined token if it saw it — the flaw is it never receives it.</p>
<p>## Impact
Arbitrary OS command execution as the host process (via `--upload-pack`) at default `allow_unsafe_options=False`, affecting all guarded methods that forward kwargs. Prec…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/pysec-2026-3843"/>
  </entry>
</feed>
