<?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>Fri, 02 Oct 2026 13:57:00 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-52726 — Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE…</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-52726</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; jelmer dulwich&lt;/p&gt;
&lt;p&gt;Dulwich is a pure-Python implementation of the Git file formats and protocols. Starting in version 0.23.2 and prior to version 1.2.5, `dulwich.porcelain.submodule_update`, and by extension `porcelain.clone(..., recurse_submodules=True)`, materializes attacker-controlled submodule paths from a crafted upstream repository without path validation. A malicious `.gitmodules` plus a matching tree gitlink whose `path` is `.git/hooks` (or any other directory inside the parent repository&amp;#39;s `.git` directory) causes the attacker&amp;#39;s submodule tree contents to be written directly into the victim&amp;#39;s `.git/hooks/` directory, preserving executable mode bits. The dropped executables are then run by any subsequent `git` or `dulwich` command that invokes the matching hook, resulting in arbitrary code execution. This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich&amp;#39;s separately implemented submodule porcelain. Version 1.2.5 patches the issue.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; jelmer dulwich&lt;/p&gt;
&lt;p&gt;Dulwich is a pure-Python implementation of the Git file formats and protocols. Starting in version 0.23.2 and prior to version 1.2.5, `dulwich.porcelain.submodule_update`, and by extension `porcelain.clone(..., recurse_submodules=True)`, materializes attacker-controlled submodule paths from a crafted upstream repository without path validation. A malicious `.gitmodules` plus a matching tree gitlink whose `path` is `.git/hooks` (or any other directory inside the parent repository&amp;#39;s `.git` directory) causes the attacker&amp;#39;s submodule tree contents to be written directly into the victim&amp;#39;s `.git/hooks/` directory, preserving executable mode bits. The dropped executables are then run by any subsequent `git` or `dulwich` command that invokes the matching hook, resulting in arbitrary code execution. This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich&amp;#39;s separately implemented submodule porcelain. Version 1.2.5 patches the issue.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-52726</guid>
    </item>
    <item>
      <title>GHSA-gfhv-vqv2-4544 — Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE…</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-gfhv-vqv2-4544</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: dulwich&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`dulwich.porcelain.submodule_update`, and by extension `porcelain.clone(..., recurse_submodules=True)`, materializes attacker-controlled submodule paths from a crafted upstream repository without path validation. A malicious `.gitmodules` plus a matching tree gitlink whose `path` is `.git/hooks` (or any other directory inside the parent repository&amp;#39;s `.git` directory) causes the attacker&amp;#39;s submodule tree contents to be written directly into the victim&amp;#39;s `.git/hooks/` directory, preserving executable mode bits. The dropped executables are then run by any subsequent `git` or `dulwich` command that invokes the matching hook, resulting in arbitrary code execution.&lt;/p&gt;
&lt;p&gt;This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich&amp;#39;s separately implemented submodule porcelain.&lt;/p&gt;
&lt;p&gt;### Affected&lt;/p&gt;
&lt;p&gt;- **Package:** `dulwich` (PyPI)
- **Affected versions:** `&amp;gt;=0.23.2, &amp;lt;1.2.5`
- **Affected platforms:** all (Linux, macOS, Windows). Exploitation does not require a case-insensitive or NTFS filesystem, because the path written is a literal `.git/hooks` rather than a case- or short-name-aliased form.&lt;/p&gt;
&lt;p&gt;Affected entry points:
- `dulwich.porcelain.submodule_update(repo, init=True, recursive=True)`
- `dulwich.porcelain.clone(source, target, recurse_submodules=True)`
- `dulwich submodule update` CLI / `dulwich clone --recurse-submodules` CLI&lt;/p&gt;
&lt;p&gt;### Vulnerable code&lt;/p&gt;
&lt;p&gt;The submodule path from the tree&amp;#39;s gitlink entry (and match…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: dulwich&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`dulwich.porcelain.submodule_update`, and by extension `porcelain.clone(..., recurse_submodules=True)`, materializes attacker-controlled submodule paths from a crafted upstream repository without path validation. A malicious `.gitmodules` plus a matching tree gitlink whose `path` is `.git/hooks` (or any other directory inside the parent repository&amp;#39;s `.git` directory) causes the attacker&amp;#39;s submodule tree contents to be written directly into the victim&amp;#39;s `.git/hooks/` directory, preserving executable mode bits. The dropped executables are then run by any subsequent `git` or `dulwich` command that invokes the matching hook, resulting in arbitrary code execution.&lt;/p&gt;
&lt;p&gt;This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich&amp;#39;s separately implemented submodule porcelain.&lt;/p&gt;
&lt;p&gt;### Affected&lt;/p&gt;
&lt;p&gt;- **Package:** `dulwich` (PyPI)
- **Affected versions:** `&amp;gt;=0.23.2, &amp;lt;1.2.5`
- **Affected platforms:** all (Linux, macOS, Windows). Exploitation does not require a case-insensitive or NTFS filesystem, because the path written is a literal `.git/hooks` rather than a case- or short-name-aliased form.&lt;/p&gt;
&lt;p&gt;Affected entry points:
- `dulwich.porcelain.submodule_update(repo, init=True, recursive=True)`
- `dulwich.porcelain.clone(source, target, recurse_submodules=True)`
- `dulwich submodule update` CLI / `dulwich clone --recurse-submodules` CLI&lt;/p&gt;
&lt;p&gt;### Vulnerable code&lt;/p&gt;
&lt;p&gt;The submodule path from the tree&amp;#39;s gitlink entry (and match…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-gfhv-vqv2-4544</guid>
    </item>
    <item>
      <title>PYSEC-2026-2465 — Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE…</title>
      <link>https://vulnerability.circl.lu/vuln/pysec-2026-2465</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: dulwich&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`dulwich.porcelain.submodule_update`, and by extension `porcelain.clone(..., recurse_submodules=True)`, materializes attacker-controlled submodule paths from a crafted upstream repository without path validation. A malicious `.gitmodules` plus a matching tree gitlink whose `path` is `.git/hooks` (or any other directory inside the parent repository&amp;#39;s `.git` directory) causes the attacker&amp;#39;s submodule tree contents to be written directly into the victim&amp;#39;s `.git/hooks/` directory, preserving executable mode bits. The dropped executables are then run by any subsequent `git` or `dulwich` command that invokes the matching hook, resulting in arbitrary code execution.&lt;/p&gt;
&lt;p&gt;This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich&amp;#39;s separately implemented submodule porcelain.&lt;/p&gt;
&lt;p&gt;### Affected&lt;/p&gt;
&lt;p&gt;- **Package:** `dulwich` (PyPI)
- **Affected versions:** `&amp;gt;=0.23.2, &amp;lt;1.2.5`
- **Affected platforms:** all (Linux, macOS, Windows). Exploitation does not require a case-insensitive or NTFS filesystem, because the path written is a literal `.git/hooks` rather than a case- or short-name-aliased form.&lt;/p&gt;
&lt;p&gt;Affected entry points:
- `dulwich.porcelain.submodule_update(repo, init=True, recursive=True)`
- `dulwich.porcelain.clone(source, target, recurse_submodules=True)`
- `dulwich submodule update` CLI / `dulwich clone --recurse-submodules` CLI&lt;/p&gt;
&lt;p&gt;### Vulnerable code&lt;/p&gt;
&lt;p&gt;The submodule path from the tree&amp;#39;s gitlink entry (and match…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: dulwich&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`dulwich.porcelain.submodule_update`, and by extension `porcelain.clone(..., recurse_submodules=True)`, materializes attacker-controlled submodule paths from a crafted upstream repository without path validation. A malicious `.gitmodules` plus a matching tree gitlink whose `path` is `.git/hooks` (or any other directory inside the parent repository&amp;#39;s `.git` directory) causes the attacker&amp;#39;s submodule tree contents to be written directly into the victim&amp;#39;s `.git/hooks/` directory, preserving executable mode bits. The dropped executables are then run by any subsequent `git` or `dulwich` command that invokes the matching hook, resulting in arbitrary code execution.&lt;/p&gt;
&lt;p&gt;This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich&amp;#39;s separately implemented submodule porcelain.&lt;/p&gt;
&lt;p&gt;### Affected&lt;/p&gt;
&lt;p&gt;- **Package:** `dulwich` (PyPI)
- **Affected versions:** `&amp;gt;=0.23.2, &amp;lt;1.2.5`
- **Affected platforms:** all (Linux, macOS, Windows). Exploitation does not require a case-insensitive or NTFS filesystem, because the path written is a literal `.git/hooks` rather than a case- or short-name-aliased form.&lt;/p&gt;
&lt;p&gt;Affected entry points:
- `dulwich.porcelain.submodule_update(repo, init=True, recursive=True)`
- `dulwich.porcelain.clone(source, target, recurse_submodules=True)`
- `dulwich submodule update` CLI / `dulwich clone --recurse-submodules` CLI&lt;/p&gt;
&lt;p&gt;### Vulnerable code&lt;/p&gt;
&lt;p&gt;The submodule path from the tree&amp;#39;s gitlink entry (and match…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/pysec-2026-2465</guid>
    </item>
  </channel>
</rss>
