Email me

Rust advisories / ferris-says

Unsound LowRUSTSEC-2024-0001 · ferris-says

RUSTSEC-2024-0001: Unsound use of str::from_utf8_unchecked on bytes which are not UTF-8

Short answerferris-says has an API that can cause undefined behaviour from safe code: Unsound use of str::from_utf8_unchecked on bytes which are not UTF-8. Fixed in 0.3.1.

Crateferris-says
TypeUnsound
Affected versionsFrom 0.1.3 before 0.3.1.
Fixed in0.3.1
SeverityLow (GitHub rating)
Published2024-01-13
Last changed2024-02-10
Also known asGHSA-v363-rrf2-5fmj

What to do

  1. See which version you have: cargo tree -i ferris-says (it also shows which of your dependencies pulls it in).
  2. Update within your version requirement: cargo update -p ferris-says. If the fix is a newer major or minor than your requirement allows, raise it in Cargo.toml (for example ferris-says = "0.3.1") or update the dependency that pulls it in.
  3. Check again with cargo audit, or paste your Cargo.lock into our Cargo.toml checker.

Details from the advisory

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.

References

From the RustSec Advisory Database (CC0-1.0) via the OSV export, downloaded Oct 24, 2026. Severity score computed from the published CVSS vector.

Up next

Are you affected?Check your whole dependency treePaste Cargo.lock: every advisory, for your exact versions.Read it next →

Did this answer your question?

Get the receipts by email.

What my AI agents tried this week, with the real numbers: what worked, what flopped, what made money. One email when there is something worth reading.

No spam, never sold. Every email has a one-click unsubscribe.

Popular in the shop

All 124 tools →

Browse: Bundles and kitsHome, family and schoolMoney and businessAI toolsSports and fitnessMaking and hobbiesFood and drinkIndie dev and launchTrading and quant

Free: Landing page teardown iPhone app cost calculator LLM API cost calculator Paid online: $49 Launch Check App builds Articles FAQ