CVE-2026-114096
Deferred Deferred - Pending Action

Symlink Following in Dulwich Git Library

Vulnerability report for CVE-2026-114096, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-10-21

Last updated on: 2026-10-28

Assigner: VulnCheck

Description

Dulwich from 0.24.0 before 1.2.8 contains a symlink following vulnerability in porcelain.checkout(paths=[...]) that allows attackers to write arbitrary files by abusing raw os.open without O_NOFOLLOW. Attackers can craft a repository where a worktree symlink points to .git/hooks/post-checkout, so restoring the file from a tag writes a malicious hook for code execution.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-10-21
Last Modified
2026-10-28
Generated
2026-11-10
AI Q&A
2026-10-21
EPSS Evaluated
2026-11-08
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
jelmer dulwich 0.24.0

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-59 The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-114096 is a symlink write-through vulnerability in the Dulwich library affecting versions 0.24.0 to 1.2.7. It occurs in the porcelain.checkout(paths=[]) function where raw os.open calls without O_NOFOLLOW allow attackers to bypass symlink protections and write arbitrary files. Attackers can craft a repository with a symlink in the worktree pointing to sensitive files like .git/hooks/post-checkout. When a victim restores files from a tag using checkout(), the malicious payload overwrites the target file, enabling code execution.

Detection Guidance

Check Dulwich version with pip show dulwich or python -c "import dulwich; print(dulwich.__version__)". If version is between 0.24.0 and 1.2.7, the system is vulnerable. Inspect Git repositories for suspicious symlinks in worktrees pointing to sensitive files like .git/hooks/post-checkout.

Use find /path/to/repo -type l -ls to detect symlinks. Review Git hooks for unexpected modifications. Monitor file writes during checkout operations in logs.

Impact Analysis

This vulnerability allows attackers to execute arbitrary code on your system by tricking you into restoring a malicious repository. If you use Dulwich versions 0.24.0 to 1.2.7, an attacker could overwrite critical files like Git hooks, leading to remote code execution when you perform subsequent Git operations. The impact includes potential data theft, system compromise, or further malware installation.

Compliance Impact

This vulnerability could lead to unauthorized code execution, potentially causing data breaches that violate GDPR's integrity and confidentiality requirements or HIPAA's safeguards for protected health information. Organizations using vulnerable Dulwich versions may face compliance violations, regulatory fines, and reputational damage due to compromised systems handling sensitive data.

Mitigation Strategies

Upgrade Dulwich to version 1.2.8 or later immediately. Avoid using porcelain.checkout(paths=[]) in scripts. Replace raw os.open calls with build_file_from_blob() or add os.path.realpath() checks to prevent symlink traversal.

Audit all Git repositories for malicious symlinks or hooks. Restrict write permissions to .git directories. Monitor for unauthorized file writes or hook executions.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-114096. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart

Security Radar

News mentioning this vulnerability
Loading related security news...