Bug ID 1230688
Summary VUL-0: CVE-2024-45405: obs-service-cargo: gix-path: gix-path improperly resolves configuration path reported by Git
Classification openSUSE
Product openSUSE Distribution
Version Leap 15.5
Hardware Other
URL https://smash.suse.de/issue/419949/
OS Other
Status NEW
Whiteboard CVSSv3.1:SUSE:CVE-2024-45405:6.4:(AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H) CVSSv4.0:SUSE:CVE-2024-45405:7.0:(AV:L/AC:H/AT:P/PR:H/UI:N/VC:N/VI:H/VA:N/SC:H/SI:H/SA:H)
Severity Normal
Priority P5 - None
Component Security
Assignee xiaoguang.wang@suse.com
Reporter andrea.mattiazzo@suse.com
QA Contact security-team@suse.de
Blocks 1230682
Target Milestone ---
Found By ---
Blocker ---

`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.

References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2024-45405
https://bugzilla.redhat.com/show_bug.cgi?id=2310412
https://www.cve.org/CVERecord?id=CVE-2024-45405
https://github.com/Byron/gitoxide/blob/1cfe577d461293879e91538dbc4bbfe01722e1e8/gix-path/src/env/git/mod.rs#L138-L142
https://github.com/Byron/gitoxide/commit/650a1b5cf25e086197cc55a68525a411e1c28031
https://github.com/Byron/gitoxide/security/advisories/GHSA-m8rp-vv92-46c7


You are receiving this mail because: