---
id: "CVE-2026-63395"
kind: "vulnerability"
aliases: ["CVE-2026-63395"]
title: "isomorphic-git: checkout follows symlinks and writes files outside the working tree"
severity: "high"
cvss: 8.8
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["git-tooling", "isomorphic-git", "javascript", "node.js", "package"]
not_affected_if: ["browser-or-memory-fs", "trusted-repositories-only", "upgraded-to-1.38.6", "windows-node-fs"]
published_at: "2026-11-03T20:18:14+00:00"
first_seen_at: "2026-11-03T20:49:22+00:00"
updated_at: "2026-11-03T20:49:47+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-63395", "first_seen_at": "2026-11-03T20:49:22+00:00"}]
---

# isomorphic-git: checkout follows symlinks and writes files outside the working tree

isomorphic-git is a JavaScript Git library for Node.js and browsers. Before 1.38.6, git.checkout writes new files through symlinked directories without checking them, so a malicious repository can make a write land outside the working tree and possibly run code on Linux or macOS.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Run `npm ls isomorphic-git` in the project to find the installed version
- Look for `isomorphic-git` in `package.json` and lockfiles, and check whether the app calls `git.checkout` or `git.pull` on untrusted repositories
- Check whether the app uses Node fs on Linux or macOS (the affected setup), not Windows or browser/in-memory providers

## Fix

- isomorphic-git: upgrade to `1.38.6` or later

## Timeline

- 2026-11-03T20:49:22+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-63395

## Documents

- [advisory] Vendor advisory: github.com https://github.com/isomorphic-git/isomorphic-git/security/advisories/GHSA-9qw7-j9xw-fv9c
- [fix] Patch: github.com https://github.com/isomorphic-git/isomorphic-git/commit/823843d1cd19182df79bc907c767f5bcecb39a0b
- [fix] Release notes: github.com https://github.com/isomorphic-git/isomorphic-git/releases/tag/v1.38.6

## From the sources

isomorphic-git is a pure JavaScript implementation of Git for Node.js and browsers. Prior to 1.38.6, isomorphic-git's git.checkout writes new child paths through symlinked leading directory components without checking them. A malicious repository can first place a directory symlink and later replace the tree state with a child file beneath that path; the usual trigger is a clone followed by a later pull, while a single clone can trigger the issue when a symlink already exists or the consuming application accesses the tree. With Node fs on Linux or macOS, the operating system can resolve the write outside the working tree, permitting arbitrary host file writes and possible code execution. Node fs on Windows usually blocks the symlink plant without additional privilege, and browser or in-memory providers limit impact to their virtual filesystem and are affected only when they implement symlink creation and following. This issue is fixed in version 1.38.6.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
