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
GHSA-8W8G-WQ8H-FQ33
Date
Source
GitHub
GitHub
Vendor
GitHub
GitHub
Threat
high
high
CVSS
8.6
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.