Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessHost malicious packfile/repository
-
DeliveryVictim initiates clone/fetch/cat-file
-
ExploitResolver computes self-referential base offset (delta_offset=0)
-
ExecutionInfinite recursion in Pack.resolve_object
-
ImpactCPU exhaustion hangs/crashes service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Loop termination conditions
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that a victim perform a packfile-walking operation - dulwich clone, fetch, cat-file, or any internal Pack.__getitem__/Pack.resolve_object lookup - against an attacker-supplied packfile containing an OFS_DELTA object whose delta_offset field is exactly 0 (causing base_offset = obj_offset - 0 to self-reference). No authentication is required (PR:N), but the attack is gated by passive user interaction (UI:P): the attacker cannot trigger it unsolicited and must induce the victim/service to process the malicious pack. The primary limiting factor is therefore that the target must ingest attacker-controlled packfiles - highest real-world exposure is for multi-tenant or internet-facing services (CI/CD runners, Git hosting/web frontends) built on dulwich < 1.2.9; isolated clients cloning only trusted repositories are at low practical risk. Fixed in 1.2.9. |
| Impact | This is a credible but moderate-priority denial-of-service issue, not a critical system-compromise flaw. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H) scores 7.1 and correctly reflects a network-reachable, low-complexity, unauthenticated attack whose only impact is availability (VA:H) - there is no confidentiality or integrity loss (VC:N/VI:N), consistent with CWE-835 (infinite loop/recursion). The key moderating signal is UI:P (passive user interaction): exploitation requires a victim to initiate a packfile-walking operation (clone, fetch, cat-file) against attacker-supplied data, so this is not a wormable, self-propagating remote exploit. Publicly available exploit code exists (a 44-byte PoC packfile is published in the GHSA advisory), which raises practical risk, but this is NOT the same as active exploitation. The CVE is NOT in CISA KEV, and no EPSS score was provided in the input, so exploitation probability cannot be quantified from this data. Net: a real, easily reproducible DoS against any service that parses untrusted packfiles (CI/CD runners, Git web frontends built on dulwich), but bounded to availability and gated by the victim-initiated-operation requirement - prioritize patching for internet-facing or multi-tenant dulwich-backed services over isolated client use. |
| Exploit ScenarioDerived | An attacker hosts a malicious Git repository (or submits a crafted packfile to a service that ingests them) containing a single OFS_DELTA object whose delta_offset is 0, making the object reference its own offset. When a victim service or user runs clone, fetch, or cat-file against it, dulwich's Pack.resolve_object recurses into itself endlessly, pinning a CPU core at 100% and hanging or crashing the process. A working proof-of-concept that generates the 44-byte trigger packfile is published in the vendor advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Dulwich before 1.2.9 can be driven into an infinite recursion loop by a crafted packfile containing an OFS_DELTA object whose delta_offset is 0, causing CPU exhaustion during clone, fetch, cat-file, or internal object lookups. The flaw is availability-only and requires the victim or service to process an attacker-supplied packfile; publicly available exploit code exists.
RemediationAI
Vendor-released patch: upgrade to Dulwich 1.2.9 or later; the fix commit d06ffc3e1aff0ea0a32094debead891be0083eb7 adds an explicit guard in Pack.resolve_object. See GHSA-35mr-4567-66vg and the VulnCheck advisory for details. If upgrading immediately is not possible, avoid clone, fetch, cat-file, and other packfile-walking operations on untrusted repositories; restrict such operations to trusted sources and run them in isolated processes with CPU and time limits and timeouts (trade-off: legitimate large or slow operations may be terminated). For multi-tenant or internet-facing services, gate or disable ingestion of attacker-controlled packfiles until patched, accepting reduced functionality. Do not rely on network filtering alone because the malicious data can arrive through normal Git transport.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Dulwich is a pure-Python Git implementation, and its packfile resolver handles OFS_DELTA entries by computing base_offset = obj_offset - delta_offset before recursively resolving the base object. A malicious pack can set delta_offset to 0, so base_offset equals the current object's own offset and the resolver recurses indefinitely because there is no visited set, depth counter, or explicit rejection of zero. This is CWE-835 (Infinite Loop) in dulwich/pack.py (Pack.resolve_object), affecting packfile-walking paths. The CPE cpe:2.3:a:jelmer:dulwich:*:*:*:*:*:*:*:* covers the affected Python package prior to 1.2.9. The Git C client explicitly rejects delta_offset 0. Assessed CVSS 3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H reflects a remote, unauthenticated trigger gated by user interaction and availability-only impact; exploitation requires ingestion of an attacker-controlled packfile.
Know when Dulwich gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Network-reachable parsing of untrusted packfiles with no auth (AV:N/PR:N) but requires victim to initiate the operation (UI:R); impact is availability-only CPU exhaustion (A:H, C:N/I:N), scope unchanged.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Dulwich before 1.2.9 contains a denial of service vulnerability in Pack.resolve_object that allows attackers to cause infinite recursion via self-referential OFS_DELTA objects. Attackers can supply a malicious packfile with an OFS_DELTA delta_offset of 0 to exhaust CPU during clone, fetch, or cat-file operations.
Blast Radius
ecosystem impact- 3 pypi packages depend on dulwich (3 direct, 0 indirect)
Ecosystem-wide dependent count for version 1.2.9.
Technical POC Analysis
CWE-835: Loop with Unreachable Exit Condition (Infinite Loop), in Pack.resolveobject in dulwich/pack.py.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity availability flaw in the Dulwich Python Git library can allow crafted packfiles to exhaust CPU and disrupt services that clone, fetch, or inspect Git data. Leadership should care because publicly available exploit code exists, no vendor-released patch identified at time of analysis, and any Dulwich-based tooling that handles external or semi-trusted repositories represents a service-continuity risk.
No vendor-released patch identified at time of analysis. Interim mitigations include processing only trusted packfiles, disabling or sandboxing clone/fetch/cat-file/object lookup against untrusted repositories, enforcing CPU/time/resource limits and rate limiting, monitoring for CPU exhaustion, and upgrading to Dulwich 1.2.9 or later when available.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Related Vulnerabilities in Dulwich Path Traversal and DoS Vulnerabilities
View all 5The build_index_from_tree function in index.py in Dulwich before 0.9.9 allows remote attackers to execute arbitrary code
Arbitrary code execution in Dulwich (pure-Python Git implementation) versions 0.23.2 through 1.2.4 allows a malicious up
Dulwich before 0.18.5, when an SSH subprocess is used, allows remote attackers to execute arbitrary commands via an ssh
Buffer overflow in the C implementation of the apply_delta function in _pack.c in Dulwich before 0.9.9 allows remote att
EUVD-2026-106898
GHSA-r78r-wr5r-rqfm
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB