CVE-2026-42305
HighCVSS 8.8Exploitation Probability (EPSS)
Low risk47th percentile - higher than 47% of all known CVEs
Summary
A vulnerability in the Dulwich library (versions 0.10.0 through 1.2.4) allows remote code execution via arbitrary file write when cloning or checking out a malicious Git repository on Windows. The issue stems from improper validation of path elements that can contain bytes interpreted by Windows as structural path syntax. Additionally, the core.protectNTFS and core.protectHFS security settings were silently ignored due to configuration bugs.
Risk Assessment
The organization is at risk of an attacker gaining control over a Windows system by placing a malicious file in an arbitrary location during repository cloning. Even POSIX users can unknowingly propagate a malicious tree to Windows consumers.
Recommendation
Upgrade Dulwich to version 1.2.5 or later immediately. If upgrading is not possible, avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows.
Other vulnerabilities in Dulwich
See all- CVE-2015-0838High
Buffer overflow in the C implementation of the apply_delta function in _pack.c in Dulwich before version 0.9.9 allows remote attackers to execute arbitrary code via a crafted pack file.
- CVE-2014-9706High
The build_index_from_tree function in index.py in Dulwich before version 0.9.9 allows remote attackers to execute arbitrary code via a commit with a directory path starting with .git/, which is not properly handled when checking out a working tree.
- CVE-2017-16228Critical
Dulwich before version 0.18.5, when using an SSH subprocess, allows remote attackers to execute arbitrary commands via an ssh URL with an initial dash character in the hostname.
- CVE-2026-38974Medium
Dulwich through version 1.1.0 is missing SSH host key verification in contrib/paramiko_vendor.py. This means that during SSH connections, the server's public key is not checked for trustworthiness.
- CVE-2026-52726High
Dulwich versions 0.23.2 through 1.2.5 do not validate submodule paths during recursive clone. An attacker can craft a malicious .gitmodules and gitlink tree with path .git/hooks, causing files to be written into the victim's .git/hooks directory. Executable files are then run on any hook invocation, leading to remote code execution.
- CVE-2026-47734Medium
A vulnerability in Dulwich (versions 0.1.0 through 1.2.4) allows a client with push access to send a crafted thin pack (~174 bytes) whose delta header declares a huge dest_size. When processed by add_thin_pack/apply_delta, it allocates hundreds of MB of memory, potentially causing resource exhaustion.
- CVE-2026-47712Low
A vulnerability in Dulwich (versions 0.24.0 through 1.2.4) allows writing patch files outside the intended directory via a malicious commit subject. The format_patch function derives filenames from commit subjects without sanitizing path separators or parent-directory components.
- CVE-2026-42563High
A vulnerability in the Dulwich library (versions 0.24.0 through 1.2.4) allows arbitrary command execution. An attacker can craft a malicious file path in a Git branch, which is substituted into the merge driver command via the %P placeholder and executed with shell=True when a victim merges the branch.
Original NVD description (English source)
Dulwich is a pure-Python implementation of the Git file formats and protocols. Versions starting with 0.10.0 and prior to 1.2.5 have an arbitrary 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. This issue is fixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. There 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.

