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.
Published: 2026-10-21
Score: 7.3 High
EPSS: < 1% Very Low
KEV: No
Impact: Remote Code Execution
Action: Immediate Patch
AI Analysis

Impact

Dulwich’s porcelain.checkout() uses raw os.open without the O_NOFOLLOW flag, allowing an attacker-controlled repository to create a symlink that points to any target file on the file system. When the checkout operation follows this symlink, the target file is overwritten with attacker-supplied data. In a typical exploitation scenario the attacker crafts a repository where the worktree symlink points to .git/hooks/post‑checkout, causing the checkout process to write a malicious hook that executes arbitrary code when subsequent checkouts occur. This flaw is a classic path‑traversal exploit (CWE‑59) and can lead to persistent command execution with the privileges of the user performing the checkout.

Affected Systems

The vulnerability affects Dulwich, developed by Jelmer and distributed as the Dulwich project. Versions 0.24.0 through 1.2.7 contain the flaw; version 1.2.8 and later contain the fix. Any environment that employs Dulwich to perform Git operations—such as applications that clone, pull, or checkout repositories—may be impacted if it processes untrusted or potentially malicious repositories.

Risk and Exploitability

The CVSS score of 7.3 describes a high severity issue, while the EPSS score of less than 1% indicates that, at present, exploitation likelihood is low. The flaw is not listed in CISA’s KEV catalog. Attackers must be able to supply a repository that contains the malicious symlink; the likely attack vector is cloning from or pulling from an attacker‑controlled repository in a continuous integration pipeline or similar environment. Based on the description, it is inferred that the attacker can embed the vulnerable symlink into the repository prior to the target performing a porcelain.checkout(), which then writes arbitrary content to .git/hooks/post‑checkout and achieves code execution with the checkout’s effective privileges.

Generated by OpenCVE AI on October 21, 2026 at 16:28 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Dulwich to version 1.2.8 or newer, which removes the symlink write‑through flaw.
  • If an upgrade cannot be performed immediately, limit the use of porcelain.checkout() to trusted repositories or configure the environment to disallow symlink following during checkout.
  • Regularly monitor the .git/hooks directory for unexpected changes and remove any unauthorized hooks to detect potential persistence mechanisms.

Generated by OpenCVE AI on October 21, 2026 at 16:28 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 28 Oct 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 22 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Important


Wed, 21 Oct 2026 00:45:00 +0000

Type Values Removed Values Added
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.
Title Dulwich 0.24.0 before 1.2.8 Symlink Write-Through via porcelain.checkout paths
First Time appeared Dulwich Project
Dulwich Project dulwich
Weaknesses CWE-59
CPEs cpe:2.3:a:dulwich_project:dulwich:*:*:*:*:*:*:*:*
Vendors & Products Dulwich Project
Dulwich Project dulwich
References
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 7.3, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Dulwich Project Dulwich
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-10-28T13:46:53.993Z

Reserved: 2026-10-20T21:46:55.741Z

Link: CVE-2026-114096

cve-icon Vulnrichment

Updated: 2026-10-28T13:46:47.819Z

cve-icon NVD

Status : Deferred

Published: 2026-10-21T01:17:34.933

Modified: 2026-10-28T14:16:57.093

Link: CVE-2026-114096

cve-icon Redhat

Severity : Important

Publid Date: 2026-10-21T00:36:59Z

Links: CVE-2026-114096 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-21T21:45:06Z

Weaknesses
  • CWE-59

    Improper Link Resolution Before File Access ('Link Following')