Skip to main content

isomorphic-git CVE-2026-63395

| EUVDEUVD-2026-116274 HIGH
Path Traversal (CWE-22)
2026-11-03 security-advisories@github.com
8.8
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Publish malicious repo with two-state tree
  2. Delivery
    Victim clones repo planting directory symlink
  3. Exploit
    Victim later pulls adding child file
  4. Execution
    isomorphic-git writes file through leading symlink
  5. Persist
    Payload lands in ~/.ssh or .git/hooks
  6. Impact
    Code execution on host

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires a consuming application using isomorphic-git <= 1.38.5 with the Node fs provider on Linux or macOS, processing an attacker-controlled repository via git.checkout. The concrete trigger is a clone that checks out commit N (planting 'config' as a directory symlink to a target such as ~/.ssh or .git) followed by a later pull checking out commit N+1 (adding a child path like 'config/authorized_keys'); a single clone also triggers it when the symlink already exists on disk or the app reads/writes into the cloned tree. Limiting factors that reduce real-world risk: user interaction is needed (clone/pull of an untrusted repo); Node fs on Windows typically throws EPERM on symlink creation so it is not exploitable without privilege; and browser or in-memory providers (memfs, ZenFS, lightning-fs) confine impact to their virtual filesystem and are affected only if they implement symlink creation and following. The only complete fix per the vendor is updating to 1.38.6.

Impact

Signals mostly align toward a genuine priority but fall short of emergency. The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H, base 8.8) reflects the worst case - Node fs on a POSIX host - where a malicious repository yields arbitrary host file write and likely RCE. UI:R is accurate and meaningful: exploitation needs the victim to clone and later pull (or clone a repo where a symlink already exists), so this is not drive-by; it requires processing an attacker-controlled repository. The vuln.today decision label is 'this_week', consistent with high technical impact but no confirmed mass exploitation. No CISA KEV entry is present in the input, so this is NOT confirmed actively exploited. No EPSS score was supplied, so exploitation probability cannot be quantified from this data. A public PoC reference is provided (spiceoverflow/av1-symlink-hook-rce) and the GHSA shows confirmed SSH-key-injection output on Linux, but the input does not carry a 'POC: Publicly available (confirmed)' label, so it is treated as a public PoC reference, not verified working exploit code. The real-risk caveat is deployment-dependent and explicitly stated by the vendor: Node fs on Windows usually blocks the symlink plant (EPERM) and is not exploitable by default, while browser/in-memory providers are sandboxed and affected only if they implement symlink creation and following. So the 8.8 applies to server-side Linux/macOS consumers that process untrusted repos; for Windows-only or browser-only deployments the real-world risk is substantially lower.

Exploit ScenarioDerived

A server, CI job, or desktop tool uses isomorphic-git with Node fs on Linux/macOS to clone an attacker-controlled repository (commit N stores 'config' as a directory symlink pointing at, e.g., ~/.ssh or .git), then performs a routine pull (commit N+1 adds 'config/authorized_keys' or 'hooks/pre-commit'); isomorphic-git writes the child file through the leading symlink, landing it outside the working tree. A public PoC reference exists and the advisory demonstrates confirmed SSH key injection, though the input does not mark it as verified working exploit code. Exploitation requires user interaction (the clone/pull of an untrusted repo) but no authentication to the victim.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 03, 2026

isomorphic-git's git.checkout writes working-tree files through symlinked leading directory components without validating them, so a malicious repository can escape the checkout directory and overwrite arbitrary host files. Deployments using the Node fs provider on Linux or macOS are exposed to writes anywhere the process can reach - the advisory's demonstrated path injects an SSH key into ~/.ssh/authorized_keys, and an alternative plants hooks or rewrites .git/config to achieve code execution on the next native git command. Exploitation requires the victim to clone and later pull (or otherwise access) an attacker-controlled repo, which is the UI:R component of the CVSS 8.8 vector; Node fs on Windows typically fails at symlink creation with EPERM, and browser/in-memory providers are confined to their virtual filesystem. No public working exploit is confirmed in the provided data, though a public PoC reference (av1-symlink-hook-rce) accompanies the advisory; fixed in 1.38.6.

RemediationAI

Upgrade isomorphic-git to version 1.38.6 (npm: isomorphic-git@1.38.6), which the vendor identifies as the only complete fix; the patched checkout lstat-checks every leading path component and refuses to traverse a symlink, mirroring git's has_symlink_leading_path(). Details are in advisory GHSA-9qw7-j9xw-fv9c and release https://github.com/isomorphic-git/isomorphic-git/releases/tag/v1.38.6, with the change in PR 2370 and commit 823843d1. Until the upgrade is deployed, reduce exposure by not running git.checkout on untrusted or unreviewed repositories in processes whose filesystem privileges extend beyond the checkout directory, and by keeping clone/pull targets inside a directory the process may fully overwrite; running the consuming application as a low-privilege account or inside a container whose writable mounts exclude ~/.ssh and any git control directory limits the blast radius of a successful escape. On Linux/macOS the escape depends on real symlinks being created and followed, so restricting symlink creation for the checkout user (or using a filesystem or sandbox that rejects symlinks) blocks the plant step, at the cost of breaking legitimate repositories that contain symlinks. Node fs on Windows fails the plant with EPERM by default and browser or in-memory providers confine writes to their virtual filesystem, but neither property is a substitute for patching. Note that this issue was not listed in CISA KEV in the provided data, and the decision label is this_week rather than emergency.

Affected VersionsENISA

isomorphic-git < 1.38.6

Affected Packages

euvd isomorphic_git fix: 1.38.6

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

isomorphic-git is a pure-JavaScript reimplementation of Git used by Node.js tooling and browser applications. The flaw is CWE-22 (path traversal) with an accompanying CWE-59 (link following) component rooted in the checkout write path: before writing a working-tree file, isomorphic-git does not lstat each leading path component the way canonical git does via has_symlink_leading_path() in symlinks.c, the same hardening that addressed CVE-2021-21300 and CVE-2024-32002. Because a single tree cannot contain a name as both a symlink and a directory, the attack is staged across two commits: commit N records 'config' as a mode 120000 symlink pointing at an attacker-chosen target (../.ssh, or .git), and commit N+1 replaces it with a mode 040000 tree containing 'config/authorized_keys'. On the second checkout the path is treated as a brand-new child; mkdir of the parent hits EEXIST and is ignored, and writeFile is then resolved by the OS through the pre-existing symlink, landing outside the working tree. The file-level symlink swap (120000 to 100644) is caught because the mode change forces an rm, but the directory-level variant never removes the parent symlink. Impact is governed by the fs provider rather than by isomorphic-git itself: real OS symlinks under Node fs on Linux/macOS give host file write and possible code execution, Windows usually throws EPERM at symlink creation, and memfs/ZenFS/lightning-fs or custom providers bound the damage to their virtual filesystem and are affected only if they implement symlink creation and following. The commit introducing the fix (823843d1) adds a server-only regression test asserting an 'unsafe' error when a checkout would traverse a planted directory symlink into an external sink directory.

Know when Node.js gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (github) PRIMARY 8.8 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

Malicious remote repo (AV:N) with a reliable two-commit technique (AC:L) and no victim authentication (PR:N) but requiring the victim's clone/pull (UI:R); arbitrary host file write yields full C/I/A impact.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Nov 03, 2026 - 21:03 EUVD
CVE Published
Nov 03, 2026 - 20:18 cve.org
HIGH 8.8

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

A high-severity vulnerability in isomorphic-git (CVE-2026-63395) allows a malicious repository to overwrite arbitrary files on developer machines, including SSH authorized_keys and git hooks, potentially leading to remote code execution. Development teams using the Node fs provider on Linux or macOS are exposed if they clone or pull from untrusted repositories. Leadership should prioritize immediate patching and restrict repository sources to mitigate risk.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

Prevalence
Medium
popular pure-JS Git library in web/Node tooling, not universally deployed
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy