diff --git a/crates/libsbc/RUSTSEC-0000-0000.md b/crates/libsbc/RUSTSEC-0000-0000.md new file mode 100644 index 0000000..70a605d --- /dev/null +++ b/crates/libsbc/RUSTSEC-0000-0000.md @@ -0,0 +1,20 @@ +```toml +[advisory] +id = "RUSTSEC-0000-0000" +package = "libsbc" +date = "2020-11-10" +url = "https://github.com/mvertescher/libsbc-rs/issues/4" +categories = ["memory-corruption"] +informational = "unsound" + +[versions] +patched = [">= 0.1.5"] +``` + +# `Decoder` can carry `R: !Send` to other threads + +Affected versions of this crate implements `Send` for `Decoder` for any `R: Read`. This allows `Decoder` 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`.