GHSA-v363-rrf2-5fmj
ferris-says has undefined behavior when not using UTF-8
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.
What each source reports
GitHub AdvisoriesNo score
ferris-says has undefined behavior when not using UTF-8
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.
- Record
GHSA-v363-rrf2-5fmj- Updated
- 2026-11-02
OSVNo score
ferris-says has undefined behavior when not using UTF-8
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.
- Record
GHSA-v363-rrf2-5fmj- Updated
- 2026-11-02
OSVRUSTSEC-2024-0001No score
Unsound use of str::from_utf8_unchecked on bytes which are not UTF-8
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.
- Record
RUSTSEC-2024-0001- Updated
- 2026-11-02
Affected packages
| Package | Affected | Fixed |
|---|---|---|
ferris-sayscrates.io | 0.1.2 to 0.2.1 | None known |
ferris-sayscrates.io | 0.3.0 up to 0.3.1 | 0.3.1 |
ferris-sayscrates.io | 0.1.3-0 up to 0.3.1 | 0.3.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | GitHub Advisories, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
GHSA-v363-rrf2-5fmj is a vulnerability with no CVSS score yet in ferris-says, published January 13, 2024. No source lists public exploit code. Fixed in ferris-says 0.3.1.