Vulnerability HighRUSTSEC-2020-0009 · flatbuffers
RUSTSEC-2020-0009: `read_scalar` and `read_scalar_at` allow transmuting values without `unsafe` blocks
Short answerA security vulnerability in the flatbuffers crate: `read_scalar` and `read_scalar_at` allow transmuting values without `unsafe` blocks. High severity (CVSS 7.5). Fixed in 2.0.0: update to a fixed version.
| Crate | flatbuffers |
|---|---|
| Type | Vulnerability |
| Affected versions | From 0.4.0 before 2.0.0. |
| Fixed in | 2.0.0 |
| Severity | High, CVSS 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| Published | 2020-04-11 |
| Last changed | 2023-11-08 |
| Also known as | CVE-2020-35864, GHSA-c9h5-hf8r-m97x |
| Affected functions | flatbuffers::read_scalar, flatbuffers::read_scalar_at |
What to do
- See which version you have:
cargo tree -i flatbuffers(it also shows which of your dependencies pulls it in). - Update within your version requirement:
cargo update -p flatbuffers. If the fix is a newer major or minor than your requirement allows, raise it in Cargo.toml (for exampleflatbuffers = "2.0.0") or update the dependency that pulls it in. - Check again with
cargo audit, or paste your Cargo.lock into our Cargo.toml checker.
Details from the advisory
The read_scalar and read_scalar_at functions are unsound because they allow transmuting values without unsafe blocks.
The following example shows how to create a dangling reference:
fn main() {
#[derive(Copy, Clone, PartialEq, Debug)]
struct S(&'static str);
impl flatbuffers::EndianScalar for S {
fn to_little_endian(self) -> Self { self }
fn from_little_endian(self) -> Self { self }
}
println!("{:?}", flatbuffers::read_scalar::<S>(&[1; std::mem::size_of::<S>()]));
}
References
- Package: crates.io/crates/flatbuffers
- Advisory: rustsec.org/advisories/RUSTSEC-2020-0009.html
- Report: github.com/google/flatbuffers/issues/5825
From the RustSec Advisory Database (CC0-1.0) via the OSV export, downloaded Oct 24, 2026. Severity score computed from the published CVSS vector.
Other advisories for flatbuffers
Up next
Same crateflatbuffers: security historyEvery advisory for this crate, and whether it is safe to use today.Read it next →Did this answer your question?