Email me

Rust advisories / lexical

Unsound LowRUSTSEC-2023-0055 · lexical

RUSTSEC-2023-0055: Multiple soundness issues

Short answerlexical has an API that can cause undefined behaviour from safe code: Multiple soundness issues. Fixed in 7.0.0.

Cratelexical
TypeUnsound
Affected versionsBefore 7.0.0.
Fixed in7.0.0
SeverityLow (GitHub rating)
Published2023-09-03
Last changed2026-02-04
Also known asGHSA-c2hm-mjxv-89r4

What to do

  1. See which version you have: cargo tree -i lexical (it also shows which of your dependencies pulls it in).
  2. Update within your version requirement: cargo update -p lexical. If the fix is a newer major or minor than your requirement allows, raise it in Cargo.toml (for example lexical = "7.0.0") 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

lexical contains multiple soundness issues:

1. Bytes::read() allows creating instances of types with invalid bit patterns 1. BytesIter::read() advances iterators out of bounds 1. The BytesIter trait has safety invariants but is public and not marked unsafe 1. write_float() calls MaybeUninit::assume_init() on uninitialized data, which is is not allowed by the Rust abstract machine 1. radix() calls MaybeUninit::assume_init() on uninitialized data, which is is not allowed by the Rust abstract machine

The crate also has some correctness issues.

Alternatives

For quickly parsing floating-point numbers third-party crates are no longer needed. A fast float parsing algorithm by the author of lexical has been merged into libcore.

For quickly parsing integers, consider atoi and btoi crates (100% safe code). atoi_radix10 provides even faster parsing, but only with -C target-cpu=native, and at the cost of some unsafe.

For formatting integers in a #[no_std] context consider the numtoa crate.

For working with big numbers consider num-bigint and num-traits.

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