PatchSiren

PatchSiren cyber security CVE debrief

CVE-2026-114098 jelmer CVE debrief

Dulwich's `stash.py:pop()` function is vulnerable to symlink directory traversal, allowing an attacker to write arbitrary files outside the repository worktree when a victim pops a stash in a malicious repository. This vulnerability exists due to the function's use of `os.path.exists(parent_dir)` to check if a parent directory exists before writing stashed files, which can be exploited by an attacker to write files outside the worktree via intermediate directory symlinks. Git users who use Dulwich should be aware of this vulnerability and take steps to protect themselves.

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

Git users who use Dulwich, specifically those who clone and work with repositories from untrusted sources, should be aware of this vulnerability and take steps to protect themselves.

Why it matters

This vulnerability allows an attacker to write arbitrary files outside the repository worktree when a victim pops a stash in a malicious repository, potentially leading to Remote Code Execution.

  • Remote Code Execution on the victim's machine on the next git checkout operation
  • Writing to arbitrary filesystem locations
  • Potential data loss or corruption

Technical summary

The `pop()` function in Dulwich's `stash.py` is vulnerable to symlink directory traversal. An attacker can craft a malicious repository that, when a victim clones it and performs a stash pop operation, writes attacker-controlled content to arbitrary filesystem locations. The vulnerability arises from the function's use of `os.path.exists(parent_dir)` to check if a parent directory exists before writing stashed files, which follows symlinks and allows an attacker to write files outside the repository worktree via intermediate directory symlinks.

Defensive priority

High

Recommended defensive actions

  • Update Dulwich to version 1.2.8 or later
  • Restrict access to sensitive repositories
  • Monitor for suspicious repository activity
  • Review compensating controls for exposed systems while remediation is scheduled and verified
  • Check relevant monitoring, detection, and logs for exposed assets that need extra review
  • Track exceptions, retest remediated assets, and close the item only after evidence is documented
  • Confirm whether affected product deployments exist in managed environments and assign an owner for follow-up

Evidence notes

The vulnerability exists in Dulwich's `stash.py:pop()` function, which uses `os.path.exists(parent_dir)` to check if a parent directory exists before writing stashed files. However, `os.path.exists()` follows symlinks, allowing an attacker to write arbitrary files outside the repository worktree.

Sources and references

Verified primary and authoritative sources

  • CVE-2026-114098 CVE Program record

    Publisher, destination, and source semantics verified

    URL: https://www.cve.org/CVERecord?id=CVE-2026-114098

    CVE Program - Official CVE Program record with source-provided CVE metadata.

  • CVE-2026-114098 NVD vulnerability detail

    Publisher, destination, and source semantics verified

    URL: https://nvd.nist.gov/vuln/detail/CVE-2026-114098

    NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.

Supplemental references

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.