CVE-2026-47734: CWE-400: Uncontrolled Resource Consumption in jelmer dulwich
Affects jelmer dulwichSource CVE Database V5
Not known to be exploited · CVSS 5.7 Medium · fixed in 1.2.5 : update jelmer dulwich when convenient.
Data as of 10/24/2026, 22:16:03 UTC
- Exploitation
Not in CISA KEV, no exploitation reported
- EPSS
- 0.3% chance of exploitation in 30 days – higher than 24% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 1.2.5
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:HWhat to do
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| jelmerdulwich | Affected
| Fixed in
|
PyPIdulwichpkg:pypi/dulwichOther threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
A patch is available in Dulwich version 1.2.5 that introduces input size limits to prevent excessive memory allocation. Operators should upgrade to version 1.2.5 or later and configure receive.maxInputSize in repository settings to a suitable limit. Until upgrading, restrict push access to trusted, authenticated clients only or disable push functionality if not needed. Additionally, apply OS-level memory limits (e.g., ulimit, cgroups, container memory limits) to contain potential resource exhaustion from malicious pushes. Note that receive.maxInputSize settings have no effect on unpatched versions.
Description
## Impact An 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. ## Patches Patched 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. ## Workarounds On unpatched versions, receive.maxInputSize has no effect, so it cannot be used as a workaround. Until upgrading, operators should: - Restrict dulwich-receive-pack (push) access to trusted, authenticated clients only, or disable it entirely on servers that only need to serve fetches. - Run the server under an OS-level memory limit (e.g. ulimit, cgroups/MemoryMax, or a container memory limit) so a malicious push is killed rather than taking down the host. ## Resources - git's receive.maxInputSize / git index-pack --max-input-size documentation - Reported by Liyi, Ziyue, Strick, Maurice and Chenchen @ University of Sydney
Impact
An attacker with push access can cause the Dulwich Git server to allocate excessive memory, potentially leading to denial of service by exhausting server resources. This does not impact confidentiality or integrity but can disrupt availability of the Git service. The vulnerability affects any server exposing git-receive-pack functionality using vulnerable Dulwich versions.
Summary
CVE-2026-47734 describes an uncontrolled resource consumption vulnerability (CWE-400) in the Dulwich Git implementation. Versions >=0.1.0 and <1.2.5 allow a client with push access to send a crafted thin pack whose delta header specifies a large destination size, causing Dulwich to allocate hundreds of megabytes of memory disproportionate to the actual data received. This occurs in the add_thin_pack/apply_delta functions when processing git-receive-pack requests. The vulnerability impacts any Dulwich-based Git server that accepts pushes, including those using dulwich.server or ReceivePackHandler. The issue is fixed in Dulwich 1.2.5 by adding a max_input_size parameter and enforcing receive.maxInputSize repository config limits, raising exceptions when exceeded. Prior to 1.2.5, no such limits exist, so mitigation requires restricting push access or applying OS-level memory constraints.
Weaknesses
- CWE-400Uncontrolled Resource Consumption (opens in a new tab)
Class weaknessLikelihood of exploit: High
The product does not properly control the allocation and maintenance of a limited resource.
MITRE discourages mapping vulnerabilities to this broad entry; the root cause is usually a more specific weakness.
- CWE-789Memory Allocation with Excessive Size Value (opens in a new tab)
Variant weakness
The product allocates memory based on an untrusted, large size value, but it does not ensure that the size is within expected limits, allowing arbitrary amounts of memory to be allocated.