CVE-2026-47712Disclosure

LOWCVSS 3.3 · LOW

Signal is active with 1 mentions in latest observed window

Immediate actions

  • Track advisory updates for patch or workaround availability

Recommended action window: Monitor and triage in normal cycle

NVD description

Dulwich is a pure-Python implementation of the Git file formats and protocols. Starting in version 0.24.0 and prior to version 1.2.5, dulwich.porcelain.format_patch(outdir=...) derives each patch filename from the commit's subject line. Prior to this fix, get_summary only replaced spaces with dashes - path separators (/, \), parent-directory components (..), and other filename-hostile characters (e.g. :) were preserved verbatim and passed straight into os.path.join(outdir, f"{i:04d}-{summary}.patch"). A malicious commit subject could therefore direct the generated patch file outside the requested outdir. This is fixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. dulwich.patch.get_summary now mirrors git's format_sanitized_subject: only `[A-Za-z0-9._]` are kept, runs of other characters collapse to a single -, consecutive . collapse to a single ., trailing ./- are stripped, and the result is length-limited. This makes the returned string safe to embed as a filename component, so format_patch can no longer be steered out of outdir via the commit subject. Until upgrading, callers that pass untrusted commits to porcelain.format_patch can use stdout=True and write the patch to a destination they control, rather than letting format_patch choose the filename; validate the chosen path before opening - e.g. compare os.path.realpath(returned_path) against os.path.realpath(outdir) and reject any patch whose resolved path is not inside outdir; and/or pre-screen commits and refuse to format any whose subject's first line contains /, \, .., or other characters that are not safe on the target filesystem.

0.0/ 10 priority

Sources & remediation

Weakness type (CWE)
CWE-22

Priority

LOW

Exploitation

NONE

PoC

NONE

Patch

NONE

Momentum

STABLE

Threat summary

  • 2 mentions across 2 observed days
  • Momentum state: stable

What's happening

  • Technical details provided in 2 signals
  • Disclosure: 2 classified signals
  • Peaked 1d ago at 1 mentions (2026-06-09); latest day: 1
  • 2 total mentions across 2 days

Deep dive

Activity timeline2 mentions / 2d
00111Mentions · 2026-06-09: 1Mentions · 2026-06-11: 1Technical Details · 2026-06-09: 1Technical Details · 2026-06-11: 106-0906-11
Signal classification1 categories
Disclosure
2100.0%
Referenced assets2 URLs
Full discourse2 posts
  • Vulmon Vulnerability Feed@VulmonFeeds
    Disclosure

    CVE-2026-47712 Path Traversal in Dulwich Git Implementation Versions Before 1.2.5 https://vulmon.com/vulnerabilitydetails?qid=CVE-2026-47712

    Post summary

    The post announces a path traversal vulnerability affecting Dulwich Git versions earlier than 1.2.5 and directs readers to a vulnerability details page.

    0000058
    4.0K followersView on X
  • DailyCVE@dailycve
    Disclosure

    🔵 Dulwich (#Python Git library) Path Traversal in porcelainformat_patch, #CVE-2026-47712 (Low Severity) -DC-Jun2026-304 https://dailycve.com/dulwich-python-git-library-path-traversal-in-porcelainformat_patch-cve-2026-47712-low-severity-dc-jun2026-304/

    Post summary

    A low‑severity path traversal issue (CVE‑2026‑47712) was disclosed in the Dulwich Python Git library’s porcelainformat_patch, with no evidence of active exploitation or patch details provided.

    0000058
    210 followersView on X

Explore more