GitHub Advisoryadvisory · crates.io

GHSA-cx7h-h87r-jpgr The kstring integration in gix-attributes is unsound

LOW Published 2024-07-25 Modified 2025-01-21 Official page ↗
Ecosystem
crates.io
Packages
gix-attributes
Severity
Low
Weaknesses
CWE-172
Reviewed
2024-07-25

Affected packages

• crates.io gix-attributes: < 0.22.3 → fixed in 0.22.3

Description

`gix-attributes` (in `state::ValueRef`) unsafely creates a `&str` from a `&[u8]` containing non-UTF8 data, with the justification that so long as nothing reads the `&str` and relies on it being UTF-8 in the `&str`, there is no UB: ```rust // SAFETY: our API makes accessing that value as `str` impossible, so illformed UTF8 is never exposed as such. ``` The problem is that the non-UTF8 `str` is exposed to outside code: first to the `kstring` crate itself, which requires UTF-8 in its documentation and may have UB as a consequence of this, but also to `serde`, where it propagates to e.g. `serde_json`, `serde_yaml`, etc., where the same problems occur. This is not sound, and it could cause further UB down the line in these places that can view the `&str`.

Related

Weakness · CWE (1)

  • CWE-172 Improper Encoding or Decoding of Data weakness

References