<?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-29T04:54:21.621052+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-73621</id>
    <title>CVE-2026-73621 — GitPython before 3.1.56 Arbitrary File Truncation via Commit.count</title>
    <updated>2026-09-29T04:54:22.140670+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.56 contains an argument injection vulnerability in the Commit.count() method, which forwards keyword arguments to 'git rev-list' without the check_unsafe_options guard present in the sibling iter_items method. An attacker who can control options passed to Commit.count (e.g., via an application that forwards a user-supplied options dict) can supply output=&lt;path&gt;, causing 'git rev-list --output=&lt;path&gt;' to open and truncate the target file to zero bytes before revision parsing. This allows destruction/blanking of an arbitrary file at the process's privilege level (no content control, 0-byte truncation).</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-73621"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-p538-c434-8v24</id>
    <title>GHSA-p538-c434-8v24 — GitPython: Arbitrary file truncation via git rev-list --output argument injection in unguarded Commit.count</title>
    <updated>2026-09-29T04:54:22.140919+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: GitPython</p>
<p>## Summary
`Commit.count()` forwards `**kwargs` into `rev_list` with **no** `check_unsafe_options` guard (the guard exists only in the sibling `iter_items`, commit.py:341). `git rev-list --output=&lt;path&gt;` opens and truncates the target file to 0 bytes before revision parsing, so `count(output='/victim')` destroys/blanks an arbitrary file.</p>
<p>## Root Cause
`commit.py:290-291` calls `self.repo.git.rev_list(self.hexsha, **kwargs)` with no `check_unsafe_options` and no `allow_unsafe_options` parameter. The sibling `iter_items` (commit.py:341) is guarded; `count` is not. This is a distinct, uncovered sink — GHSA-956x-8gvw-wg5v fixed `iter_commits`/`blame`, not `count`.</p>
<p>## Impact
Destroy/blank an arbitrary file at process privilege (integrity/availability). Reachability is key-control only (`count` uses `self.hexsha`, not a user ref), and the write is a 0-byte truncation (no content control), so MEDIUM.</p>
<p>## Proof of Concept
```python
commit.count(output='/path/to/victim')   # victim truncated to 0 bytes (verified)
# control: commit.iter_commits(output=...) raises UnsafeOptionError
```</p>
<p>## Attack Chain
1. Entry: app forwards user options -&gt; `commit.count(output='/victim')`. Guard: none. Bypass proof: `iter_commits(output=)` raises UnsafeOptionError; `count(output=)` does not — verified side-by-side.
2. Sink: `git rev-list &lt;sha&gt; --output=/victim` -&gt; file truncated to 0 bytes. Impact: destroy/blank arbitrary file.</p>
<p>## Bypass Evidence
Live-verified on HEAD (tag 3.1.53): `count(output=&lt;v…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-p538-c434-8v24"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/pysec-2026-3950</id>
    <title>PYSEC-2026-3950</title>
    <updated>2026-09-29T04:54:22.140995+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: gitpython</p>
<p>GitPython before 3.1.56 contains an argument injection vulnerability in the Commit.count() method, which forwards keyword arguments to 'git rev-list' without the check_unsafe_options guard present in the sibling iter_items method. An attacker who can control options passed to Commit.count (e.g., via an application that forwards a user-supplied options dict) can supply output=&lt;path&gt;, causing 'git rev-list --output=&lt;path&gt;' to open and truncate the target file to zero bytes before revision parsing. This allows destruction/blanking of an arbitrary file at the process's privilege level (no content control, 0-byte truncation).</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/pysec-2026-3950"/>
  </entry>
</feed>
