Rust advisories / lexer
Vulnerability HighRUSTSEC-2020-0138 · lexer
RUSTSEC-2020-0138: ReaderResult should be bounded by Sync
Short answerA security vulnerability in the lexer crate: ReaderResult should be bounded by Sync. High severity (CVSS 8.1). No fixed version: replace the crate or remove the affected code path.
| Crate | lexer |
|---|---|
| Type | Vulnerability (memory-corruption, thread-safety) |
| Affected versions | Every version. |
| Fixed in | none |
| Severity | High, CVSS 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Published | 2020-11-10 |
| Last changed | 2023-11-08 |
| Also known as | CVE-2020-36458, GHSA-f997-8gxg-r354 |
What to do
- Find who pulls it in:
cargo tree -i lexer. - Avoid the affected API, or replace the crate.
Details from the advisory
Affected versions of this crate implements Sync for ReaderResult<T, E> with the trait bound T: Send, E: Send.
Since matching on the public enum ReaderResult<T, E> provides access to &T & &E, allowing data race to a non-Sync type T or E. This can result in a memory corruption when multiple threads concurrently access &T or &E.
Suggested fix for the bug is change the trait bounds imposed on T & E to be T: Sync, E: Sync.
References
- Package: crates.io/crates/lexer
- Advisory: rustsec.org/advisories/RUSTSEC-2020-0138.html
- Report: gitlab.com/nathanfaucett/rs-lexer/-/issues/2
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 →Also worth your time
Did this answer your question?