PatchSiren cyber security CVE debrief
CVE-2026-114097 jelmer CVE debrief
Dulwich's `filter_branch.py` `CommitFilter._apply_index_filter()` is vulnerable to symlink directory traversal. When processing commit history, materialized tree entries (including symlinks) persist in the working directory between commits, allowing a symlink from an ancestor commit to redirect file writes from a descendant commit to arbitrary filesystem locations.
- Vendor
- jelmer
- Product
- dulwich
- CVSS
- HIGH 7.3
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-10-02
- Original CVE updated
- 2026-10-21
- Advisory published
- 2026-10-02
- Advisory updated
- 2026-10-21
Who should care
Defenders responsible for managing and processing Git repositories using dulwich should assess exposure and prioritize verification and updates to prevent potential symlink attacks.
Why it matters
The Dulwich vulnerability allows an attacker to craft a malicious repository where running `filter_branch` with an index filter writes attacker-controlled content to arbitrary filesystem locations.
- Verify and update dulwich versions to prevent symlink attacks
- Review and update repository processing scripts to handle recursive processing securely
- Implement additional monitoring and logging to detect potential symlink attacks
Technical summary
The `_apply_index_filter()` function in `dulwich/filter_branch.py` materializes all tree entries to the current working directory, but only cleans up the temporary index file, not the filesystem files written to CWD. This allows symlinks from ancestor commits to persist and affect processing of descendant commits. The vulnerability allows an attacker to craft a malicious repository where running `filter_branch` with an index filter writes attacker-controlled content to arbitrary filesystem locations. Defenders should prioritize verifying and updating dulwich versions, especially in environments where repositories are processed recursively, to prevent potential symlink attacks.
Defensive priority
Defenders should prioritize verifying and updating dulwich versions, especially in environments where repositories are processed recursively, to prevent potential symlink attacks.
Recommended defensive actions
- Verify dulwich version and update to 1.2.8 or later
- Review and update repository processing scripts to handle recursive processing securely
- Implement additional monitoring and logging to detect potential symlink attacks
- Track exceptions and retest remediated assets
- Check relevant monitoring, detection, and logs for exposed assets that need extra review
- Review compensating controls for exposed systems while remediation is scheduled and verified
- Confirm whether affected product deployments exist in managed environments and assign an owner for follow-up
Evidence notes
The vulnerability is caused by the `_apply_index_filter()` function in `dulwich/filter_branch.py` not properly cleaning up materialized tree entries, allowing symlinks to persist and affect processing of descendant commits.
Sources and references
Verified primary and authoritative sources
-
CVE-2026-114097 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-114097
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-114097 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-114097
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
Dulwich: Symlink directory traversal in filter-branch index_filter via cross-commit state persis
Unverified legacy reference
URL: https://storage.googleapis.com/osv-vulnerabilities/PyPI/GHSA-5fqc-mrg8-w798.json
osv_dev
-
Source reference
Unverified legacy reference
URL: https://github.com/jelmer/dulwich/security/advisories/GHSA-5fqc-mrg8-w798
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/jelmer/dulwich/commit/9571ac60b851fce228dae7ededb380c6ce9b3fb8
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/jelmer/dulwich
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/jelmer/dulwich/releases/tag/dulwich-1.2.8
Supplemental source
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.