dulwich
Python Git Library
Activity
- Latest release
- 11h ago
- Total releases
- 153
- Cadence
- ~9 days
- Last 12 months
- 29
Details
- License
- Apache-2.0 OR GPL-2.0-or-later
- First release
- Sep 22, 2013
| Version | Released | |
|---|---|---|
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
|
1.2.8
patch
Dependencies (16)
+ 8 more |
|
1.2.7
patch
|
1.2.7
patch
Dependencies (16)
+ 8 more |
|
1.2.6
patch
|
1.2.6
patch
Dependencies (15)
+ 7 more |
|
1.2.5
patch
|
1.2.5
patch
Dependencies (15)
+ 7 more |
|
1.2.4
patch
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
5 CVEs
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
3 CVEs
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
2 CVEs
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
2 CVEs
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
2 CVEs
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
2 CVEs
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
2 CVEs
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
2 CVEs
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
2 CVEs
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
2 CVEs
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
2 CVEs
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
2 CVEs
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
2 CVEs
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
2 CVEs
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
|
|
0.21.5
patch
2 CVEs
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.5
patch
|
|
0.21.4.1
patch
2 CVEs
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.4.1
patch
|
|
0.21.4
patch
2 CVEs
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.4
patch
Dependencies (5)
|
|
0.21.3
patch
2 CVEs
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.3
patch
|
|
0.21.2
patch
2 CVEs
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.2
patch
|