Skip to content

← Actionable
High, CVSS 7.8

gix-fs: Symlink prefix-reuse allows worktree escape during checkout

CVE-2026-44471GHSA-f89h-2fjh-2r9q

What to do

Vendor fix available. Upgrade each affected package to the fixed version on its release line (gix-fs 0.21.1), redeploy, then verify what is actually installed.

This page has no inventory attached, so it cannot say whether you are affected. A vendor fix is not proof that your deployment is fixed.

Affected packages

  • crates.io gix-fs

    Affected
    <= 0.21.0
    Fixed in
    0.21.1

Sources

Severity and exploitation
Exploitation
No confirmed exploitation recorded. Patch Next marks exploitation only from CISA KEV.
CVSS
7.8 · CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
EPSS
  • CVE-2026-44471: 0.29% estimated exploitation activity in the next 30 days; percentile 21.78 (FIRST EPSS, 2026-11-03). This is a model estimate, not proof of exploitation or customer exposure.
Source description

As published by the source; long descriptions are shortened.

Summary A malicious tree can be constructed that will, when checked out with gitoxide, permit writing an attacker-controlled symlink into any existing directory the user has write access to. Details During checkout, all symlink index entries are deferred and created after regular files using a single shared gixworktree::Stack. Internally, this uses a gixfs::Stack. gixfs::Stack::makerelativepathcurrent() caches validated path prefixes: when the previously-processed leaf component exactly matches the leading component(s) of the next path, the leaf-to-directory transition at gix-fs/src/stack.rs:195-197 invokes only delegate.pushdirectory(), never delegate.push(). In gixworktree::stack::delegate::StackDelegate, when the state member is State::CreateDirectoryAndAttributesStack, Attributes::pushdirectory() only loads attributes (from the ODB, in the clone case), and does not perform any other checks. The on-disk symlinkmetadata() check and unlink-on-collision live in…

Dates and revisions
Published by the source
Last modified by the source
Source last checked
  1. Revision 1 · created ·

    Published from ghsa record GHSA-f89h-2fjh-2r9q

Agent brief

Preview the exact text before you copy it. Commands are read-only suggestions; review them before running anything.

# Patch Next advisory brief: CVE-2026-44471

Advisory: gix-fs: Symlink prefix-reuse allows worktree escape during checkout
IDs: CVE-2026-44471, GHSA-f89h-2fjh-2r9q
Record: https://patchnext.com/advisories/cve-2026-44471 (revision 1, source checked 26 Oct 2026, 15:42 UTC)
Inventory: none attached. This brief comes from a public page and does not say whether any deployment is affected.
Severity: High (CVSS 7.8)
Exploitation: no confirmed exploitation recorded. Patch Next confirms exploitation only from CISA KEV.
Vendor response: Vendor fix available; fixed versions by package: gix-fs 0.21.1. A vendor fix does not mean a deployment is fixed.

## Affected components
- crates.io gix-fs: affected <= 0.21.0; fixed in 0.21.1

## Suggested inspection (read-only)
- crates.io gix-fs: check the installed version with your package manager.

## Supported action
Upgrade each affected component to a fixed version on its release line. For a transitive dependency, upgrade the parent package or add an override or constraint, then regenerate the lockfile. Redeploy every environment that ran an affected version.

## Required regression checks
- Run the test suite and a production build.
- Exercise the features that depend on gix-fs.
- Repeat the inspection and confirm that only fixed versions remain installed.

## Rollback considerations
- Keep the previous lockfile and deployment artifact. Rolling back reinstates the vulnerable version, so apply any documented mitigation while you fix forward.

## Unresolved questions
- Which deployments run an affected version?
- Exploitation status can change. Check again before lowering the priority.
- Mark the work resolved only after the fixed version is verified in production.

## Sources
- Verified: https://github.com/advisories/GHSA-f89h-2fjh-2r9q (GitHub-reviewed advisory GHSA-f89h-2fjh-2r9q lists affected ranges: crates.io gix-fs >=0 <=0.21.0)

Commands are suggestions: review each one before running it.

Loading voting…