Back to list

Dulwich: Symlink write-through in checkout(paths=[]) via raw os.open bypasses all symlink protections — GHSA-8W8G-WQ8H-FQ33

GitHub · GitHub · GHSA-8W8G-WQ8H-FQ33

ID
GHSA-8W8G-WQ8H-FQ33
Date
Source
GitHub
Vendor
GitHub
Threat
high
CVSS
8.6

Summary

## Summary Dulwich's `porcelain.checkout(paths=[...])` code path writes files using raw `os.open(file_path, O_WRONLY|O_CREAT|O_TRUNC, mode)` followed by `f.write(obj.data)`. This code path does NOT call `build_file_from_blob()` at all, completely bypassing any symlink protections (including the unreleased d09f8af fix). `os.open` without `O_NOFOLLOW` follows symlinks at both the target file and intermediate…

Timeline

Published by source
2026-10-02

Risk context

  • Reported severity or threat level: high.
  • Reported CVSS score: 8.6 out of 10.
  • Review exposure for the affected product or family: pip: dulwich.

Product

pip: dulwich

What to do

General, cautious steps (verify details in the official source):

  • Prioritize patching or mitigation immediately (treat as actively risky).
  • Identify affected product versions in your inventory and verify whether you are impacted.
  • Apply vendor patches/updates or recommended mitigations as soon as available.
  • Read the official advisory for exact affected versions and remediation steps.

Official advisory

Evidence and provenance

Canonical advisory ID
GHSA-8W8G-WQ8H-FQ33
Source
GitHub
Vendor
GitHub
Published by source
2026-10-02
Last source activity
2026-10-02
Curated by
hlukh.ch

Related advisories and connections

These advisories are connected by shared CVE, product, vendor, source, or time signals.