rustsec-2024-0001
Vulnerability from osv_rustsec
Published
2024-01-13 12:00
Modified
2024-02-10 15:57
Summary
Unsound use of str::from_utf8_unchecked on bytes which are not UTF-8
Details
Affected versions receive a &[u8] from the caller through a safe API, and pass
it directly to the unsafe str::from_utf8_unchecked function.
The behavior of ferris_says::say is undefined if the bytes from the caller
don't happen to be valid UTF-8.
The flaw was corrected in ferris-says#21 by using the safe str::from_utf8
instead, and returning an error on invalid input. However this fix has not yet
been published to crates.io as a patch version for 0.2.
Separately, ferris-says#32 has introduced a different API for version 0.3
which accepts input as &str rather than &[u8], so is unaffected by this bug.
{
"affected": [
{
"database_specific": {
"categories": [],
"cvss": null,
"informational": "unsound"
},
"ecosystem_specific": {
"affected_functions": null,
"affects": {
"arch": [],
"functions": [],
"os": []
}
},
"package": {
"ecosystem": "crates.io",
"name": "ferris-says",
"purl": "pkg:cargo/ferris-says"
},
"ranges": [
{
"events": [
{
"introduced": "0.1.3-0"
},
{
"fixed": "0.3.1"
}
],
"type": "SEMVER"
}
],
"versions": []
}
],
"aliases": [
"GHSA-v363-rrf2-5fmj"
],
"database_specific": {
"license": "CC0-1.0"
},
"details": "Affected versions receive a `\u0026[u8]` from the caller through a safe API, and pass\nit directly to the unsafe `str::from_utf8_unchecked` function.\n\nThe behavior of `ferris_says::say` is undefined if the bytes from the caller\ndon\u0027t happen to be valid UTF-8.\n\nThe flaw was corrected in [ferris-says#21] by using the safe `str::from_utf8`\ninstead, and returning an error on invalid input. However this fix has not yet\nbeen published to crates.io as a patch version for 0.2.\n\nSeparately, [ferris-says#32] has introduced a different API for version 0.3\nwhich accepts input as `\u0026str` rather than `\u0026[u8]`, so is unaffected by this bug.\n\n[ferris-says#21]: https://github.com/rust-lang/ferris-says/pull/21\n[ferris-says#32]: https://github.com/rust-lang/ferris-says/pull/32",
"id": "RUSTSEC-2024-0001",
"modified": "2024-02-10T15:57:43Z",
"published": "2024-01-13T12:00:00Z",
"references": [
{
"type": "PACKAGE",
"url": "https://crates.io/crates/ferris-says"
},
{
"type": "ADVISORY",
"url": "https://rustsec.org/advisories/RUSTSEC-2024-0001.html"
},
{
"type": "WEB",
"url": "https://github.com/rust-lang/ferris-says/pull/21"
}
],
"related": [],
"severity": [],
"summary": "Unsound use of str::from_utf8_unchecked on bytes which are not UTF-8"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…