<?xml version="1.0" encoding="UTF-8"?>
<cvrfdoc xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cpe="http://cpe.mitre.org/language/2.0" xmlns:cvrf="http://docs.oasis-open.org/csaf/ns/csaf-cvrf/v1.2/cvrf" xmlns:cvrf-common="http://docs.oasis-open.org/csaf/ns/csaf-cvrf/v1.2/common" xmlns:cvssv2="http://scap.nist.gov/schema/cvss-v2/1.0" xmlns:cvssv3="https://www.first.org/cvss/cvss-v3.0.xsd" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:ns0="http://purl.org/dc/elements/1.1/" xmlns:prod="http://docs.oasis-open.org/csaf/ns/csaf-cvrf/v1.2/prod" xmlns:scap-core="http://scap.nist.gov/schema/scap-core/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:vuln="http://docs.oasis-open.org/csaf/ns/csaf-cvrf/v1.2/vuln" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://docs.oasis-open.org/csaf/ns/csaf-cvrf/v1.2/cvrf">
  <DocumentTitle xml:lang="en">CVE-2024-45405</DocumentTitle>
  <DocumentType>SUSE CVE</DocumentType>
  <DocumentPublisher Type="Vendor">
    <ContactDetails>security@suse.de</ContactDetails>
    <IssuingAuthority>SUSE Security Team</IssuingAuthority>
  </DocumentPublisher>
  <DocumentTracking>
    <Identification>
      <ID>SUSE CVE-2024-45405</ID>
    </Identification>
    <Status>Interim</Status>
    <Version>1</Version>
    <RevisionHistory>
      <Revision>
        <Number>13</Number>
        <Date>2026-03-05T02:09:20Z</Date>
        <Description>current</Description>
      </Revision>
    </RevisionHistory>
    <InitialReleaseDate>2024-09-18T23:10:38Z</InitialReleaseDate>
    <CurrentReleaseDate>2026-03-05T02:09:20Z</CurrentReleaseDate>
    <Generator>
      <Engine>cve-database/bin/generate-cvrf-cve.pl</Engine>
      <Date>2020-12-27T01:00:00Z</Date>
    </Generator>
  </DocumentTracking>
  <DocumentNotes>
    <Note Title="CVE" Type="Summary" Ordinal="1" xml:lang="en">CVE-2024-45405</Note>
    <Note Title="Mitre CVE Description" Type="Description" Ordinal="2" xml:lang="en">`gix-path` is a crate of the `gitoxide` project (an implementation of `git` written in Rust) dealing paths and their conversions. Prior to version 0.10.11, `gix-path` runs `git` to find the path of a configuration file associated with the `git` installation, but improperly resolves paths containing unusual or non-ASCII characters, in rare cases enabling a local attacker to inject configuration leading to code execution. Version 0.10.11 contains a patch for the issue.

In `gix_path::env`, the underlying implementation of the `installation_config` and `installation_config_prefix` functions calls `git config -l --show-origin` to find the path of a file to treat as belonging to the `git` installation. Affected versions of `gix-path` do not pass `-z`/`--null` to cause `git` to report literal paths. Instead, to cover the occasional case that `git` outputs a quoted path, they attempt to parse the path by stripping the quotation marks. The problem is that, when a path is quoted, it may change in substantial ways beyond the concatenation of quotation marks. If not reversed, these changes can result in another valid path that is not equivalent to the original.

On a single-user system, it is not possible to exploit this, unless `GIT_CONFIG_SYSTEM` and `GIT_CONFIG_GLOBAL` have been set to unusual values or Git has been installed in an unusual way. Such a scenario is not expected. Exploitation is unlikely even on a multi-user system, though it is plausible in some uncommon configurations or use cases. In general, exploitation is more likely to succeed if users are expected to install `git` themselves, and are likely to do so in predictable locations; locations where `git` is installed, whether due to usernames in their paths or otherwise, contain characters that `git` quotes by default in paths, such as non-English letters and accented letters; a custom `system`-scope configuration file is specified with the `GIT_CONFIG_SYSTEM` environment variable, and its path is in an unusual location or has strangely named components; or a `system`-scope configuration file is absent, empty, or suppressed by means other than `GIT_CONFIG_NOSYSTEM`. Currently, `gix-path` can treat a `global`-scope configuration file as belonging to the installation if no higher scope configuration file is available. This increases the likelihood of exploitation even on a system where `git` is installed system-wide in an ordinary way. However, exploitation is expected to be very difficult even under any combination of those factors.</Note>
    <Note Title="Terms of Use" Type="Legal Disclaimer" Ordinal="4" xml:lang="en">The CVRF data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).</Note>
  </DocumentNotes>
  <DocumentReferences>
    <Reference Type="Self">
      <URL>https://lists.suse.com/pipermail/sle-security-updates/2024-October/019669.html</URL>
      <Description>E-Mail link for SUSE-SU-2024:3748-1</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/J72XLMYXKFWH3FBV6MJODSD6GR7RG3VT/</URL>
      <Description>E-Mail link for openSUSE-SU-2024:14353-1</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/BSEETUGLLWE2LBDZK4YETKJXSIBBHJ5L/</URL>
      <Description>E-Mail link for openSUSE-SU-2024:14355-1</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/5AVUCUB6WNWCNZHYEZ5APB4CRZVOO6E2/</URL>
      <Description>E-Mail link for openSUSE-SU-2024:14359-1</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/3YXNKMDTNPKPGPPJXCTWHI6RZ3NLYIJQ/</URL>
      <Description>E-Mail link for openSUSE-SU-2024:14363-1</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/LZDU3FCKGOHMSOMAOARUXJ4KGV4XHUFC/</URL>
      <Description>E-Mail link for openSUSE-SU-2024:14364-1</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://www.suse.com/support/security/rating/</URL>
      <Description>SUSE Security Ratings</Description>
    </Reference>
  </DocumentReferences>
  <ProductTree xmlns="http://docs.oasis-open.org/csaf/ns/csaf-cvrf/v1.2/prod">
    <Branch Type="Product Family" Name="SUSE Linux Enterprise Server 16.0">
      <Branch Type="Product Name" Name="SUSE Linux Enterprise Server 16.0">
        <FullProductName ProductID="SUSE Linux Enterprise Server 16.0" CPE="cpe:/o:suse:sles:16:16.0:server">SUSE Linux Enterprise Server 16.0</FullProductName>
      </Branch>
    </Branch>
    <Branch Type="Product Family" Name="SUSE Package Hub 15 SP6">
      <Branch Type="Product Name" Name="SUSE Package Hub 15 SP6">
        <FullProductName ProductID="SUSE Package Hub 15 SP6">SUSE Package Hub 15 SP6</FullProductName>
      </Branch>
    </Branch>
    <Branch Type="Product Family" Name="openSUSE Leap 15.5">
      <Branch Type="Product Name" Name="openSUSE Leap 15.5">
        <FullProductName ProductID="openSUSE Leap 15.5" CPE="cpe:/o:opensuse:leap:15.5">openSUSE Leap 15.5</FullProductName>
      </Branch>
    </Branch>
    <Branch Type="Product Family" Name="openSUSE Leap 15.6">
      <Branch Type="Product Name" Name="openSUSE Leap 15.6">
        <FullProductName ProductID="openSUSE Leap 15.6" CPE="cpe:/o:opensuse:leap:15.6">openSUSE Leap 15.6</FullProductName>
      </Branch>
    </Branch>
    <Branch Type="Product Family" Name="openSUSE Tumbleweed">
      <Branch Type="Product Name" Name="openSUSE Tumbleweed">
        <FullProductName ProductID="openSUSE Tumbleweed" CPE="cpe:/o:opensuse:tumbleweed">openSUSE Tumbleweed</FullProductName>
      </Branch>
    </Branch>
    <Branch Type="Product Version" Name="cargo-audit-0.20.0~git66.972ac93-3.1">
      <FullProductName ProductID="cargo-audit-0.20.0~git66.972ac93-3.1">cargo-audit-0.20.0~git66.972ac93-3.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="cargo-audit-0.21.2~git0.18e58c2-160000.2.2">
      <FullProductName ProductID="cargo-audit-0.21.2~git0.18e58c2-160000.2.2">cargo-audit-0.21.2~git0.18e58c2-160000.2.2</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="cargo-c">
      <FullProductName ProductID="cargo-c">cargo-c</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="cargo-c-0.10.3~git0.ee7d7ef-150600.3.3.1">
      <FullProductName ProductID="cargo-c-0.10.3~git0.ee7d7ef-150600.3.3.1">cargo-c-0.10.3~git0.ee7d7ef-150600.3.3.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="cargo-c-0.10.3~git0.ee7d7ef-160000.2.2">
      <FullProductName ProductID="cargo-c-0.10.3~git0.ee7d7ef-160000.2.2">cargo-c-0.10.3~git0.ee7d7ef-160000.2.2</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="cargo-c-0.10.3~git0.ee7d7ef-2.1">
      <FullProductName ProductID="cargo-c-0.10.3~git0.ee7d7ef-2.1">cargo-c-0.10.3~git0.ee7d7ef-2.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="obs-service-cargo-1.3.6-5.1">
      <FullProductName ProductID="obs-service-cargo-1.3.6-5.1">obs-service-cargo-1.3.6-5.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="onefetch-2.22.0-1.1">
      <FullProductName ProductID="onefetch-2.22.0-1.1">onefetch-2.22.0-1.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="onefetch-2.25.0-bp156.2.3.1">
      <FullProductName ProductID="onefetch-2.25.0-bp156.2.3.1">onefetch-2.25.0-bp156.2.3.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="stgit-2.4.12-1.1">
      <FullProductName ProductID="stgit-2.4.12-1.1">stgit-2.4.12-1.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="stgit-bash-completion-2.4.12-1.1">
      <FullProductName ProductID="stgit-bash-completion-2.4.12-1.1">stgit-bash-completion-2.4.12-1.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="stgit-emacs-2.4.12-1.1">
      <FullProductName ProductID="stgit-emacs-2.4.12-1.1">stgit-emacs-2.4.12-1.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="stgit-fish-completion-2.4.12-1.1">
      <FullProductName ProductID="stgit-fish-completion-2.4.12-1.1">stgit-fish-completion-2.4.12-1.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="stgit-vim-plugin-2.4.12-1.1">
      <FullProductName ProductID="stgit-vim-plugin-2.4.12-1.1">stgit-vim-plugin-2.4.12-1.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="stgit-zsh-completion-2.4.12-1.1">
      <FullProductName ProductID="stgit-zsh-completion-2.4.12-1.1">stgit-zsh-completion-2.4.12-1.1</FullProductName>
    </Branch>
    <Relationship ProductReference="cargo-audit-0.21.2~git0.18e58c2-160000.2.2" RelationType="Default Component Of" RelatesToProductReference="SUSE Linux Enterprise Server 16.0">
      <FullProductName ProductID="SUSE Linux Enterprise Server 16.0:cargo-audit-0.21.2~git0.18e58c2-160000.2.2">cargo-audit-0.21.2~git0.18e58c2-160000.2.2 as a component of SUSE Linux Enterprise Server 16.0</FullProductName>
    </Relationship>
    <Relationship ProductReference="cargo-c-0.10.3~git0.ee7d7ef-160000.2.2" RelationType="Default Component Of" RelatesToProductReference="SUSE Linux Enterprise Server 16.0">
      <FullProductName ProductID="SUSE Linux Enterprise Server 16.0:cargo-c-0.10.3~git0.ee7d7ef-160000.2.2">cargo-c-0.10.3~git0.ee7d7ef-160000.2.2 as a component of SUSE Linux Enterprise Server 16.0</FullProductName>
    </Relationship>
    <Relationship ProductReference="onefetch-2.25.0-bp156.2.3.1" RelationType="Default Component Of" RelatesToProductReference="SUSE Package Hub 15 SP6">
      <FullProductName ProductID="SUSE Package Hub 15 SP6:onefetch-2.25.0-bp156.2.3.1">onefetch-2.25.0-bp156.2.3.1 as a component of SUSE Package Hub 15 SP6</FullProductName>
    </Relationship>
    <Relationship ProductReference="cargo-c-0.10.3~git0.ee7d7ef-150600.3.3.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 15.6">
      <FullProductName ProductID="openSUSE Leap 15.6:cargo-c-0.10.3~git0.ee7d7ef-150600.3.3.1">cargo-c-0.10.3~git0.ee7d7ef-150600.3.3.1 as a component of openSUSE Leap 15.6</FullProductName>
    </Relationship>
    <Relationship ProductReference="onefetch-2.25.0-bp156.2.3.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 15.6">
      <FullProductName ProductID="openSUSE Leap 15.6:onefetch-2.25.0-bp156.2.3.1">onefetch-2.25.0-bp156.2.3.1 as a component of openSUSE Leap 15.6</FullProductName>
    </Relationship>
    <Relationship ProductReference="cargo-audit-0.20.0~git66.972ac93-3.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Tumbleweed">
      <FullProductName ProductID="openSUSE Tumbleweed:cargo-audit-0.20.0~git66.972ac93-3.1">cargo-audit-0.20.0~git66.972ac93-3.1 as a component of openSUSE Tumbleweed</FullProductName>
    </Relationship>
    <Relationship ProductReference="cargo-c-0.10.3~git0.ee7d7ef-2.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Tumbleweed">
      <FullProductName ProductID="openSUSE Tumbleweed:cargo-c-0.10.3~git0.ee7d7ef-2.1">cargo-c-0.10.3~git0.ee7d7ef-2.1 as a component of openSUSE Tumbleweed</FullProductName>
    </Relationship>
    <Relationship ProductReference="obs-service-cargo-1.3.6-5.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Tumbleweed">
      <FullProductName ProductID="openSUSE Tumbleweed:obs-service-cargo-1.3.6-5.1">obs-service-cargo-1.3.6-5.1 as a component of openSUSE Tumbleweed</FullProductName>
    </Relationship>
    <Relationship ProductReference="onefetch-2.22.0-1.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Tumbleweed">
      <FullProductName ProductID="openSUSE Tumbleweed:onefetch-2.22.0-1.1">onefetch-2.22.0-1.1 as a component of openSUSE Tumbleweed</FullProductName>
    </Relationship>
    <Relationship ProductReference="stgit-2.4.12-1.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Tumbleweed">
      <FullProductName ProductID="openSUSE Tumbleweed:stgit-2.4.12-1.1">stgit-2.4.12-1.1 as a component of openSUSE Tumbleweed</FullProductName>
    </Relationship>
    <Relationship ProductReference="stgit-bash-completion-2.4.12-1.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Tumbleweed">
      <FullProductName ProductID="openSUSE Tumbleweed:stgit-bash-completion-2.4.12-1.1">stgit-bash-completion-2.4.12-1.1 as a component of openSUSE Tumbleweed</FullProductName>
    </Relationship>
    <Relationship ProductReference="stgit-emacs-2.4.12-1.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Tumbleweed">
      <FullProductName ProductID="openSUSE Tumbleweed:stgit-emacs-2.4.12-1.1">stgit-emacs-2.4.12-1.1 as a component of openSUSE Tumbleweed</FullProductName>
    </Relationship>
    <Relationship ProductReference="stgit-fish-completion-2.4.12-1.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Tumbleweed">
      <FullProductName ProductID="openSUSE Tumbleweed:stgit-fish-completion-2.4.12-1.1">stgit-fish-completion-2.4.12-1.1 as a component of openSUSE Tumbleweed</FullProductName>
    </Relationship>
    <Relationship ProductReference="stgit-vim-plugin-2.4.12-1.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Tumbleweed">
      <FullProductName ProductID="openSUSE Tumbleweed:stgit-vim-plugin-2.4.12-1.1">stgit-vim-plugin-2.4.12-1.1 as a component of openSUSE Tumbleweed</FullProductName>
    </Relationship>
    <Relationship ProductReference="stgit-zsh-completion-2.4.12-1.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Tumbleweed">
      <FullProductName ProductID="openSUSE Tumbleweed:stgit-zsh-completion-2.4.12-1.1">stgit-zsh-completion-2.4.12-1.1 as a component of openSUSE Tumbleweed</FullProductName>
    </Relationship>
    <Relationship ProductReference="cargo-c" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 15.5">
      <FullProductName ProductID="openSUSE Leap 15.5:cargo-c">cargo-c as a component of openSUSE Leap 15.5</FullProductName>
    </Relationship>
  </ProductTree>
  <Vulnerability xmlns="http://docs.oasis-open.org/csaf/ns/csaf-cvrf/v1.2/vuln" Ordinal="1">
    <Notes>
      <Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">`gix-path` is a crate of the `gitoxide` project (an implementation of `git` written in Rust) dealing paths and their conversions. Prior to version 0.10.11, `gix-path` runs `git` to find the path of a configuration file associated with the `git` installation, but improperly resolves paths containing unusual or non-ASCII characters, in rare cases enabling a local attacker to inject configuration leading to code execution. Version 0.10.11 contains a patch for the issue.

In `gix_path::env`, the underlying implementation of the `installation_config` and `installation_config_prefix` functions calls `git config -l --show-origin` to find the path of a file to treat as belonging to the `git` installation. Affected versions of `gix-path` do not pass `-z`/`--null` to cause `git` to report literal paths. Instead, to cover the occasional case that `git` outputs a quoted path, they attempt to parse the path by stripping the quotation marks. The problem is that, when a path is quoted, it may change in substantial ways beyond the concatenation of quotation marks. If not reversed, these changes can result in another valid path that is not equivalent to the original.

On a single-user system, it is not possible to exploit this, unless `GIT_CONFIG_SYSTEM` and `GIT_CONFIG_GLOBAL` have been set to unusual values or Git has been installed in an unusual way. Such a scenario is not expected. Exploitation is unlikely even on a multi-user system, though it is plausible in some uncommon configurations or use cases. In general, exploitation is more likely to succeed if users are expected to install `git` themselves, and are likely to do so in predictable locations; locations where `git` is installed, whether due to usernames in their paths or otherwise, contain characters that `git` quotes by default in paths, such as non-English letters and accented letters; a custom `system`-scope configuration file is specified with the `GIT_CONFIG_SYSTEM` environment variable, and its path is in an unusual location or has strangely named components; or a `system`-scope configuration file is absent, empty, or suppressed by means other than `GIT_CONFIG_NOSYSTEM`. Currently, `gix-path` can treat a `global`-scope configuration file as belonging to the installation if no higher scope configuration file is available. This increases the likelihood of exploitation even on a system where `git` is installed system-wide in an ordinary way. However, exploitation is expected to be very difficult even under any combination of those factors.</Note>
    </Notes>
    <CVE>CVE-2024-45405</CVE>
    <ProductStatuses>
      <Status Type="Fixed">
        <ProductID>SUSE Linux Enterprise Server 16.0:cargo-audit-0.21.2~git0.18e58c2-160000.2.2</ProductID>
        <ProductID>SUSE Linux Enterprise Server 16.0:cargo-c-0.10.3~git0.ee7d7ef-160000.2.2</ProductID>
        <ProductID>SUSE Package Hub 15 SP6:onefetch-2.25.0-bp156.2.3.1</ProductID>
        <ProductID>openSUSE Leap 15.6:cargo-c-0.10.3~git0.ee7d7ef-150600.3.3.1</ProductID>
        <ProductID>openSUSE Leap 15.6:onefetch-2.25.0-bp156.2.3.1</ProductID>
        <ProductID>openSUSE Tumbleweed:cargo-audit-0.20.0~git66.972ac93-3.1</ProductID>
        <ProductID>openSUSE Tumbleweed:cargo-c-0.10.3~git0.ee7d7ef-2.1</ProductID>
        <ProductID>openSUSE Tumbleweed:obs-service-cargo-1.3.6-5.1</ProductID>
        <ProductID>openSUSE Tumbleweed:onefetch-2.22.0-1.1</ProductID>
        <ProductID>openSUSE Tumbleweed:stgit-2.4.12-1.1</ProductID>
        <ProductID>openSUSE Tumbleweed:stgit-bash-completion-2.4.12-1.1</ProductID>
        <ProductID>openSUSE Tumbleweed:stgit-emacs-2.4.12-1.1</ProductID>
        <ProductID>openSUSE Tumbleweed:stgit-fish-completion-2.4.12-1.1</ProductID>
        <ProductID>openSUSE Tumbleweed:stgit-vim-plugin-2.4.12-1.1</ProductID>
        <ProductID>openSUSE Tumbleweed:stgit-zsh-completion-2.4.12-1.1</ProductID>
      </Status>
    </ProductStatuses>
    <Threats>
      <Threat Type="Impact">
        <Description>moderate</Description>
      </Threat>
    </Threats>
    <CVSSScoreSets>
      <ScoreSetV3>
        <BaseScoreV3>5.6</BaseScoreV3>
        <VectorV3>CVSS:3.1/AV:L/AC:H/PR:H/UI:R/S:U/C:H/I:H/A:N</VectorV3>
      </ScoreSetV3>
    </CVSSScoreSets>
  </Vulnerability>
</cvrfdoc>
