<?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://cve.radiocsirt.org</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>Mon, 05 Oct 2026 15:34:59 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-73619 — GitPython before 3.1.57 Arbitrary File Read via Repo.archive()</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-73619</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.57 contains an incomplete denylist in the unsafe_git_archive_options guard that omits --add-file and --add-virtual-file options. Attackers can supply these options to Repo.archive() to read arbitrary files from the filesystem and include them in the returned archive.&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.57 contains an incomplete denylist in the unsafe_git_archive_options guard that omits --add-file and --add-virtual-file options. Attackers can supply these options to Repo.archive() to read arbitrary files from the filesystem and include them in the returned archive.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-73619</guid>
    </item>
    <item>
      <title>GHSA-539m-9xh6-q6rr — GitPython: Incomplete unsafe_git_archive_options denylist omits --add-file / --add-virtual-file, enabling arbitrary fil…</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-539m-9xh6-q6rr</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: GitPython&lt;/p&gt;
&lt;p&gt;**Target:** gitpython-developers/GitPython
**Tested:** HEAD `07e80555` (2026-07-25), latest release 3.1.55, `git version 2.50.1`&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`Repo.archive()` does call the option guard, so this is not a missing-guard report. The guard is present and working; the **denylist it consults is incomplete**.&lt;/p&gt;
&lt;p&gt;```python
# git/repo/base.py:169
unsafe_git_archive_options = [
    # Allows arbitrary command execution through the remote git-upload-archive command.
    &amp;#34;--exec&amp;#34;,
    # Writes output to a caller-controlled filesystem path.
    &amp;#34;--output&amp;#34;,
    &amp;#34;-o&amp;#34;,
]
```&lt;/p&gt;
&lt;p&gt;The comment on `--output` states the protected class in the project&amp;#39;s own words: an option that lets the caller name **a filesystem path** is unsafe. `--output` is blocked because it *writes* to a caller-chosen path.&lt;/p&gt;
&lt;p&gt;`git archive` also accepts `--add-file=&amp;lt;path&amp;gt;` and `--add-virtual-file=&amp;lt;path:content&amp;gt;` (both present in current git; verified against `git version 2.50.1`). `--add-file` *reads* a caller-chosen path — including an absolute path outside the repository — and places the bytes into the archive the caller receives. Neither option is in the list, and no other layer references them:&lt;/p&gt;
&lt;p&gt;```
$ grep -rniE &amp;#34;add.file|add_file&amp;#34; git/
git/index/base.py:771:   R&amp;#34;&amp;#34;&amp;#34;Add files from the working tree, ...      # unrelated docstring
```&lt;/p&gt;
&lt;p&gt;Net effect: the guard blocks arbitrary file **write** at this sink while permitting arbitrary file **read** at the same sink.&lt;/p&gt;
&lt;p&gt;## Reachability proof (verified at the sink)&lt;/p&gt;
&lt;p&gt;`poc/poc_addfile.py` at…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: GitPython&lt;/p&gt;
&lt;p&gt;**Target:** gitpython-developers/GitPython
**Tested:** HEAD `07e80555` (2026-07-25), latest release 3.1.55, `git version 2.50.1`&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`Repo.archive()` does call the option guard, so this is not a missing-guard report. The guard is present and working; the **denylist it consults is incomplete**.&lt;/p&gt;
&lt;p&gt;```python
# git/repo/base.py:169
unsafe_git_archive_options = [
    # Allows arbitrary command execution through the remote git-upload-archive command.
    &amp;#34;--exec&amp;#34;,
    # Writes output to a caller-controlled filesystem path.
    &amp;#34;--output&amp;#34;,
    &amp;#34;-o&amp;#34;,
]
```&lt;/p&gt;
&lt;p&gt;The comment on `--output` states the protected class in the project&amp;#39;s own words: an option that lets the caller name **a filesystem path** is unsafe. `--output` is blocked because it *writes* to a caller-chosen path.&lt;/p&gt;
&lt;p&gt;`git archive` also accepts `--add-file=&amp;lt;path&amp;gt;` and `--add-virtual-file=&amp;lt;path:content&amp;gt;` (both present in current git; verified against `git version 2.50.1`). `--add-file` *reads* a caller-chosen path — including an absolute path outside the repository — and places the bytes into the archive the caller receives. Neither option is in the list, and no other layer references them:&lt;/p&gt;
&lt;p&gt;```
$ grep -rniE &amp;#34;add.file|add_file&amp;#34; git/
git/index/base.py:771:   R&amp;#34;&amp;#34;&amp;#34;Add files from the working tree, ...      # unrelated docstring
```&lt;/p&gt;
&lt;p&gt;Net effect: the guard blocks arbitrary file **write** at this sink while permitting arbitrary file **read** at the same sink.&lt;/p&gt;
&lt;p&gt;## Reachability proof (verified at the sink)&lt;/p&gt;
&lt;p&gt;`poc/poc_addfile.py` at…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-539m-9xh6-q6rr</guid>
    </item>
    <item>
      <title>PYSEC-2026-3948</title>
      <link>https://cve.radiocsirt.org/vuln/pysec-2026-3948</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: gitpython&lt;/p&gt;
&lt;p&gt;GitPython before 3.1.57 contains an incomplete denylist in the unsafe_git_archive_options guard that omits --add-file and --add-virtual-file options. Attackers can supply these options to Repo.archive() to read arbitrary files from the filesystem and include them in the returned archive.&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.57 contains an incomplete denylist in the unsafe_git_archive_options guard that omits --add-file and --add-virtual-file options. Attackers can supply these options to Repo.archive() to read arbitrary files from the filesystem and include them in the returned archive.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/pysec-2026-3948</guid>
    </item>
  </channel>
</rss>
