Skip to content

← Public intelligence

crates.io package

gix-fs

Open actionable advisories and recorded vendor fixes. This public package view has no inventory attached and cannot establish whether your deployment is affected. A vendor fix never resolves your finding; verify your installed version and the source guidance.

Open advisories

2 actionable advisories, newest first. Withdrawn advisories and news are excluded. Coverage is partial.

  1. High, CVSS 7.8crates.ioPublished

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

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

    Affected
    • crates.io gix-fs <= 0.21.0
    Fixed in
    0.21.1· Vendor fix available
    Issue
    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…

    Recommended action: Upgrade to 0.21.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  2. High, CVSS 8.6crates.ioPublished

    gix traversal outside working tree enables arbitrary code execution

    CVE-2024-35186 · GHSA-7w47-3wg8-547c

    Affected
    • crates.io gix-fs < 0.11.0
    Fixed in
    0.11.0· Vendor fix available
    Issue
    During checkout, gitoxide does not verify that paths point to locations in the working tree. A specially crafted repository can, when cloned, place new files anywhere writable by the application. Details Although gix-worktree-state checks for collisions with existing files, it does not itself check if a path is really in the working tree when performing a checkout, nor do the path checks in gix-fs and gix-worktree prevent this. Cloning an untrusted repository containing specially crafted tree or blob names will create new files outside the repository, or inside the repository or a submodule's .git directory. The simplest cases are: - A tree named .. to traverse upward. This facilitates arbitrary code execution because files can be placed in one or more locations where they are likely to be executed soon. - A tree named .git to enter a .git directory. This facilitates arbitrary code execution because hooks can be installed. A number of alternatives that achieve the same effect…

    Recommended action: Upgrade to 0.11.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →