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.
{ "nvd_published_at": null, "cwe_ids": [], "severity": "LOW", "github_reviewed": true, "github_reviewed_at": "2024-01-17T20:31:11Z" }