{
  "cveId": "CVE-2026-47712",
  "url": "https://patchblox.com/security/cve/CVE-2026-47712",
  "summary": "CVE-2026-47712 is fixed in dulwich on 1 platform by DEBIAN-CVE-2026-47712 (version 1.2.5-1), released June 29, 2026. It is not reported as exploited. Patch Radar priority: Routine.",
  "title": "dulwich: Dulwich is a pure-Python implementation of the Git file formats and protocols",
  "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\u0027s 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\u0022{i:04d}-{summary}.patch\u0022). 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\u0027s format_sanitized_subject: only \u0060[A-Za-z0-9._]\u0060 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\u0027s first line contains /, \\, .., or other characters that are not safe on the target filesystem.",
  "published": "2026-06-10T23:16:48Z",
  "severity": "low",
  "cvss": 3.3,
  "cvssVector": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N",
  "epss": 0.00139,
  "epssPercentile": 0.03257,
  "priority": "Routine",
  "priorityTier": 4,
  "exploited": false,
  "vendorExploited": false,
  "disclosed": false,
  "fixes": [
    {
      "platform": "linux",
      "product": "dulwich",
      "release": "Debian 14",
      "fixedVersion": "1.2.5-1",
      "fix": "DEBIAN-CVE-2026-47712",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-47712",
      "released": "2026-06-29T14:19:49Z"
    }
  ],
  "noFixYet": [],
  "dataAsOf": "2026-11-08T06:59:42Z",
  "attribution": {
    "text": "Data: Patchblox Patch Radar",
    "url": "https://patchblox.com/security/patch-radar",
    "terms": "https://patchblox.com/security/patch-radar/use-the-data"
  }
}