Rust advisories / libsbc
Unsound HighRUSTSEC-2020-0120 · libsbc
RUSTSEC-2020-0120: `Decoder<R>` can carry `R: !Send` to other threads
Short answerlibsbc has an API that can cause undefined behaviour from safe code: `Decoder<R>` can carry `R: !Send` to other threads. Fixed in 0.1.5.
| Crate | libsbc |
|---|---|
| Type | Unsound (memory-corruption, thread-safety) |
| Affected versions | Before 0.1.5. |
| Fixed in | 0.1.5 |
| 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-36440, GHSA-f6g6-54hm-fhxv |
What to do
- See which version you have:
cargo tree -i libsbc(it also shows which of your dependencies pulls it in). - Update within your version requirement:
cargo update -p libsbc. If the fix is a newer major or minor than your requirement allows, raise it in Cargo.toml (for examplelibsbc = "0.1.5") 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
Affected versions of this crate implements Send for Decoder<R> for any R: Read. This allows Decoder<R> to contain R: !Send and carry (move) it to another thread.
This can result in undefined behavior such as memory corruption from data race on R, or dropping R = MutexGuard<_> from a thread that didn't lock the mutex.
The flaw was corrected in commit a34d6e1 by adding trait bound R: Send to the Send impl for Decoder<R>.
References
- Package: crates.io/crates/libsbc
- Advisory: rustsec.org/advisories/RUSTSEC-2020-0120.html
- Report: github.com/mvertescher/libsbc-rs/issues/4
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?