CVE-2025-31130 gitoxide does not detect SHA-1 collision attacks
- Exploited in the wild
- Not known
- Fix
- Available
What is CVE-2025-31130?
CVE-2025-31130 is a medium-severity vulnerability in GitoxideLabs gitoxide, published on 4 Apr 2025.
Official description
gitoxide is an implementation of git written in Rust. Before 0.42.0, gitoxide uses SHA-1 hash implementations without any collision detection, leaving it vulnerable to hash collision attacks. gitoxide uses the sha1_smol or sha1 crate, both of which implement standard SHA-1 without any mitigations for collision attacks. This means that two distinct Git objects with colliding SHA-1 hashes would break the Git object model and integrity checks when used with gitoxide. This vulnerability is fixed in 0.42.0.
Weakness: CWE-328
Which versions are affected by CVE-2025-31130?
40 open source packages ship an affected version, including gitoxide, gitoxide-core and gix.
| Package | Affected | Fixed in |
|---|---|---|
gitoxide crates.io | All versions | 0.42.0 |
gitoxide crates.io | All versions | 0.42.0 |
gitoxide-core crates.io | All versions | 0.46.0 |
gitoxide-core crates.io | All versions | 0.46.0 |
gix crates.io | All versions | 0.71.0 |
gix crates.io | All versions | 0.71.0 |
34 more packages
gix-archive crates.io | All versions | 0.20.0 |
gix-archive crates.io | All versions | 0.20.0 |
gix-blame crates.io | All versions | 0.1.0 |
gix-blame crates.io | All versions | 0.1.0 |
gix-commitgraph crates.io | All versions | 0.27.0 |
gix-commitgraph crates.io | All versions | 0.27.0 |
gix-config crates.io | All versions | 0.44.0 |
gix-config crates.io | All versions | 0.44.0 |
gix-diff crates.io | All versions | 0.51.0 |
gix-diff crates.io | All versions | 0.51.0 |
gix-dir crates.io | All versions | 0.13.0 |
gix-dir crates.io | All versions | 0.13.0 |
gix-discover crates.io | All versions | 0.39.0 |
gix-discover crates.io | All versions | 0.39.0 |
gix-features crates.io | All versions | 0.41.0 |
gix-features crates.io | All versions | 0.41.0 |
gix-features crates.io | From 0.0.0-0 | 0.41.0 |
gix-filter crates.io | All versions | 0.18.0 |
gix-filter crates.io | All versions | 0.18.0 |
gix-fsck crates.io | All versions | 0.10.0 |
gix-fsck crates.io | All versions | 0.10.0 |
gix-index crates.io | All versions | 0.39.0 |
gix-index crates.io | All versions | 0.39.0 |
gix-merge crates.io | All versions | 0.4.0 |
gix-merge crates.io | All versions | 0.4.0 |
gix-negotiate crates.io | All versions | 0.19.0 |
gix-negotiate crates.io | All versions | 0.19.0 |
gix-object crates.io | All versions | 0.48.0 |
gix-object crates.io | All versions | 0.48.0 |
gix-odb crates.io | All versions | 0.68.0 |
gix-odb crates.io | All versions | 0.68.0 |
gix-pack crates.io | All versions | 0.58.0 |
gix-pack crates.io | All versions | 0.58.0 |
gix-protocol crates.io | All versions | 0.49.0 |
How do I fix CVE-2025-31130?
Upgrade gitoxide to 0.42.0 or later.
Is CVE-2025-31130 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2025-31130 exists.
Sources
Also known as DEBIAN-CVE-2025-31130, GHSA-2frx-2596-x5r6, MINI-wj8m-7cjc-fx46, RUSTSEC-2025-0021, UBUNTU-CVE-2025-31130.