dulwich
Python Git Library
Activity
- Latest release
- 3d ago
- Total releases
- 158
- Cadence
- ~7 days
- Last 12 months
- 28
Details
- License
- Apache-2.0 OR GPL-2.0-or-later
- First release
- Sep 22, 2013
| Version | Released | |
|---|---|---|
1.2.20
patch
|
1.2.20
patch
Dependencies (17)
+ 9 more |
|
1.2.18
patch
|
1.2.18
patch
Dependencies (16)
+ 8 more |
|
1.2.19
patch
|
1.2.19
patch
Dependencies (16)
+ 8 more |
|
1.2.17
patch
|
1.2.17
patch
Dependencies (16)
+ 8 more |
|
1.2.16
patch
|
1.2.16
patch
Dependencies (16)
+ 8 more |
|
1.2.15
patch
|
1.2.15
patch
Dependencies (16)
+ 8 more |
|
1.2.14
patch
|
1.2.14
patch
Dependencies (16)
+ 8 more |
|
1.2.13
patch
|
1.2.13
patch
Dependencies (16)
+ 8 more |
|
1.2.12
patch
|
1.2.12
patch
Dependencies (16)
+ 8 more |
|
1.2.11
patch
|
1.2.11
patch
Dependencies (16)
+ 8 more |
|
1.2.10
patch
|
1.2.10
patch
Dependencies (16)
+ 8 more |
|
1.2.9
patch
|
1.2.9
patch
Dependencies (16)
+ 8 more |
|
1.2.8
patch
2 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev |
1.2.8
patch
Dependencies (16)
+ 8 more |
|
1.2.7
patch
5 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev |
1.2.7
patch
Dependencies (16)
+ 8 more |
|
1.2.6
patch
5 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev |
1.2.6
patch
Dependencies (15)
+ 7 more |
|
1.2.5
patch
5 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev |
1.2.5
patch
Dependencies (15)
+ 7 more |
|
1.2.4
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
1.2.4
patch
Dependencies (15)
+ 7 more |
|
1.2.3
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
1.2.3
patch
Dependencies (15)
+ 7 more |
|
1.2.2
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
1.2.2
patch
Dependencies (15)
+ 7 more |
|
1.2.1
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
1.2.1
patch
Dependencies (15)
+ 7 more |
|
1.2.0
minor
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
1.2.0
minor
Dependencies (15)
+ 7 more |
|
1.1.0
minor
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
1.1.0
minor
Dependencies (14)
+ 6 more |
|
1.0.0
major
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
1.0.0
major
Dependencies (14)
+ 6 more |
|
0.25.2
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.25.2
patch
Dependencies (14)
+ 6 more |
|
0.25.1
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.25.1
patch
Dependencies (14)
+ 6 more |
|
0.25.0
minor
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.25.0
minor
Dependencies (13)
+ 5 more |
|
0.24.10
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.24.10
patch
Dependencies (13)
+ 5 more |
|
0.24.9
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.24.9
patch
Dependencies (13)
+ 5 more |
|
0.24.8
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.24.8
patch
Dependencies (13)
+ 5 more |
|
0.24.7
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.24.7
patch
Dependencies (13)
+ 5 more |
|
0.24.6
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.24.6
patch
Dependencies (13)
+ 5 more |
|
0.24.5
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.24.5
patch
Dependencies (13)
+ 5 more |
|
0.24.4
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.24.4
patch
Dependencies (13)
+ 5 more |
|
0.24.3
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.24.3
patch
Dependencies (13)
+ 5 more |
|
0.24.2
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.24.2
patch
Dependencies (13)
+ 5 more |
|
0.24.1
patch
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.24.1
patch
Dependencies (11)
+ 3 more |
|
0.24.0
minor
10 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114096
GHSA-8w8g-wq8h-fq33
Oct 02, 2026
Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseAt
ImpactAn attacker can craft a malicious repository that, when a victim clones it and runs Attack Scenario
Suggested FixReplace the raw Reported by zx (Jace) Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 12 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47712
PYSEC-2026-2462
GHSA-555p-6grf-mh7f
Jul 13, 2026
Dulwich doesn't sanitize commit subjects in `porcelain.format_patch`
3.3
/ 10
Low
Local
Low
None
Required
Unchanged
None
Low
None
Impactdulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, ), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. Reduced examples:
Related issues from the same root cause:
Anyone calling porcelain.format_patch (or the dulwich format-patch CLI) against untrusted commits - for example, a service that runs format-patch over user-supplied repositories or pull requests - could have patch files written to attacker-chosen locations within the process's write permissions. PatchesFixed in Dulwich 1.2.5. Users should upgrade. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only WorkaroundsUntil upgrading, callers that pass untrusted commits to porcelain.format_patch can:
Resources
Affected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42563
PYSEC-2026-2464
GHSA-9277-mp7x-85jf
Jul 13, 2026
Dulwich Vulnerable to Command Injection via Merge Driver Path
Critical
Network
Low
None
SummaryDulwich's Description
Resources
Proof of Concept
FixAffected versions
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
+ 9 more Show less
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.24.0
minor
Dependencies (11)
+ 3 more |
|
0.23.2
patch
7 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-52726
PYSEC-2026-2465
GHSA-gfhv-vqv2-4544
Jul 13, 2026
Dulwich's submodule path traversal in porcelain.submodule_update / porcelain.clone(recurse_submodules=True) yields RCE via attacker-dropped .git/hooks payload
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
This is the dulwich equivalent of the upstream Git fixes for CVE-2024-32002 / CVE-2024-32004, which were never propagated into dulwich's separately implemented submodule porcelain. Affected
Affected entry points:
Vulnerable codeThe submodule path from the tree's gitlink entry (and matching The attacker-controlled
It flows unchecked into
Finally, the attacker tree's contents are materialized into that directory via
Three issues compound:
ReachabilityA direct production call path from a user invocation: The CLI command Any service that exposes Proof of conceptEnd-to-end against pip-installed
The trigger surface is broader than this proof of concept: the dropped file fires for any matching hook name ( Credittonghuaroot Affected versions
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
+ 10 more Show less
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.23.2
patch
Dependencies (10)
+ 2 more |
|
0.23.1
patch
6 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114097
GHSA-5fqc-mrg8-w798
Oct 02, 2026
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persistence
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root Cause
On dulwich 1.2.7, ImpactAn attacker can craft a malicious repository where running Attack Scenario
Suggested FixClean the CWD between commit iterations in Reported by zx (Jace) Affected versions
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
+ 14 more Show less
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.23.1
patch
Dependencies (9)
+ 1 more |
|
0.23.0
minor
5 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.23.0
minor
Dependencies (8)
|
|
0.22.8
patch
5 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.22.8
patch
Dependencies (6)
|
|
0.22.7
patch
5 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.22.7
patch
Dependencies (6)
|
|
0.22.6
patch
5 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.22.6
patch
Dependencies (6)
|
|
0.22.5
patch
5 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114098
GHSA-cm62-gvxx-vmxx
Oct 02, 2026
Dulwich: Symlink directory traversal in stash pop allows arbitrary file write via intermediate directory symlinks
8.6
/ 10
High
Local
Low
None
Required
Changed
High
High
High
SummaryDulwich's Root CauseThe The ImpactAn attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. Writing to Attack Scenario
Suggested FixBefore writing any file, verify that no component of the target path resolves through a symlink outside the worktree. Use Reported by zx (Jace) Affected versions
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
+ 19 more Show less
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
Fixed in
1.2.8
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.22.5
patch
Dependencies (6)
|
|
0.22.4
patch
4 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.22.4
patch
Dependencies (6)
|
|
0.22.3
patch
4 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.22.3
patch
Dependencies (6)
|
|
0.22.1
patch
4 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.22.1
patch
Dependencies (6)
|
|
0.22.0
minor
4 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.22.0
minor
Dependencies (6)
|
|
0.21.7
patch
4 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.21.7
patch
|
|
0.21.6
patch
4 CVEs
CVE-2026-114094
GHSA-8mcx-5rqc-vhmf
Oct 02, 2026
Dulwich: Arbitrary File Write (RCE) on Windows via Unvalidated Drive Letters in Tree Paths
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
Affected files
Description / SummaryA High-severity Path Traversal vulnerability exists in Dulwich's checkout logic when running on Windows. The functions responsible for validating NTFS paths strictly reject A malicious Git tree can contain an entry named On Windows, if the second argument to While the standard C Potential impactThis vulnerability allows an attacker to achieve Arbitrary File Write, which can trivially be escalated to Remote Code Execution (RCE) or total system compromise on the victim's Windows machine. Attack vectors include:
Proof of Concept (PoC)The following Python script (runnable on Linux) generates a malicious Git repository containing a payload that targets Windows clients.
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-114095
GHSA-35mr-4567-66vg
Oct 02, 2026
Dulwich: Infinite Loop Denial of Service (DoS) in Packfile Object Resolution
6.5
/ 10
Medium
Network
Low
None
Required
Unchanged
None
None
High
Affected file
Description / SummaryA High-severity Denial of Service (DoS) vulnerability exists in the If a malicious packfile contains an Vulnerable Code Breakdown (
Potential impactAn attacker can trigger this infinite loop via any operation that walks packfiles (e.g.,
POC (Proof of Concept)The following Python script generates a 44-byte packfile that triggers the loop:
Possible solution
Affected versions
0.0.1
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
+ 159 more Show less
0.15.0
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Fixed in
1.2.9
References Updated Oct 21, 2026 · Source: OSV.dev
CVE-2026-47734
PYSEC-2026-2466
GHSA-xrvj-v92f-53gj
Jul 13, 2026
Dulwich has unbounded memory allocation in receive-pack from crafted thin packs
5.7
/ 10
Medium
Network
Low
Low
Required
Unchanged
None
None
High
ImpactAn uncontrolled-resource-consumption (memory exhaustion) denial-of-service vulnerability (CWE-400 / CWE-789). A client with push access could push a tiny crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When dulwich ingested it via add_thin_pack / apply_delta, it would allocate hundreds of MB of memory based on that attacker-controlled size, with no relationship to the actual bytes received. Who is impacted: Operators running a Dulwich-based Git server that exposes git-receive-pack (i.e. accepts pushes) - for example via dulwich.server functionality, the HTTP smart server, or anything built on ReceivePackHandler. PatchesPatched in 1.2.5. add_thin_pack now accepts a max_input_size keyword (bytes; 0/None = unlimited, matching git's semantics), and ReceivePackHandler reads receive.maxInputSize from the repository config and passes it through. Wire reads are counted and a PackInputTooLarge exception is raised once the cap is exceeded - equivalent to git index-pack --max-input-size. Users should upgrade to Dulwich 1.2.5 or later and set receive.maxInputSize in their server's repository config to a sane bound for their environment. WorkaroundsOn unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should:
Resources
Affected versions
0.1.0
0.1.1
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
+ 154 more Show less
0.16.0
0.16.1
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.2.1
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.8.0
0.8.1
0.8.2
0.8.3
0.8.4
0.8.5
0.8.6
0.8.7
0.9.0
0.9.1
0.9.2
0.9.3
0.9.4
0.9.5
0.9.6
0.9.7
0.9.8
0.9.9
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-42305
PYSEC-2026-2463
GHSA-897w-fcg9-f6xj
Jul 13, 2026
Dulwich has an arbitrary file write via NTFS-hostile tree entries on Windows
8.8
/ 10
High
Network
Low
None
Required
Unchanged
High
High
High
ImpactArbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax:
Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. PatchesFixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. The fix lives in three commits:
WorkaroundsThere is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required. Resources
Affected versions
0.10.0
0.10.1a
0.11.0
0.11.1
0.11.2
0.12.0
0.13.0
0.14.0
0.14.1
0.15.0
0.16.0
0.16.1
+ 121 more Show less
0.16.2
0.16.3
0.17.1
0.17.2
0.17.3
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.18.6
0.19.0
0.19.1
0.19.10
0.19.11
0.19.12
0.19.13
0.19.14
0.19.15
0.19.16
0.19.2
0.19.3
0.19.3a0
0.19.4
0.19.5
0.19.6
0.19.7
0.19.8
0.19.9
0.20.0
0.20.1
0.20.10
0.20.11
0.20.12
0.20.13
0.20.14
0.20.15
0.20.17
0.20.18
0.20.19
0.20.2
0.20.20
0.20.21
0.20.22
0.20.23
0.20.24
0.20.25
0.20.26
0.20.27
0.20.28
0.20.29
0.20.3
0.20.30
0.20.31
0.20.32
0.20.33
0.20.34
0.20.35
0.20.36
0.20.37
0.20.38
0.20.39
0.20.4
0.20.40
0.20.41
0.20.42
0.20.43
0.20.44
0.20.45
0.20.46
0.20.47
0.20.48
0.20.49
0.20.5
0.20.50
0.20.6
0.20.7
0.20.8
0.20.9
0.21.0
0.21.1
0.21.2
0.21.3
0.21.4
0.21.4.1
0.21.5
0.21.6
0.21.7
0.22.0
0.22.1
0.22.3
0.22.4
0.22.5
0.22.6
0.22.7
0.22.8
0.23.0
0.23.1
0.23.2
0.24.0
0.24.1
0.24.10
0.24.2
0.24.3
0.24.4
0.24.5
0.24.6
0.24.7
0.24.8
0.24.9
0.25.0
0.25.1
0.25.2
1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
Fixed in
1.2.5
References
Updated Jul 13, 2026 · Source: OSV.dev |
0.21.6
patch
|