Unsound sending of non-Send types in threadalone, patched (#1858)

* Add advisory for threadalone

* Fix filename
This commit is contained in:
Sergey "Shnatsel" Davidoff
2024-01-22 02:05:00 +00:00
committed by GitHub
parent 78ab2418dd
commit 412fc10e86

View File

@@ -0,0 +1,28 @@
```toml
[advisory]
id = "RUSTSEC-0000-0000"
package = "threadalone"
date = "2024-01-07"
url = "https://github.com/cr0sh/threadalone/issues/1"
informational = "unsound"
[versions]
patched = [">= 0.2.1"]
```
# Unsound sending of non-Send types across threads
Affected versions can run the `Drop` impl of a non-Send type on a different
thread than it was created on.
The flaw occurs when a stderr write performed by the `threadalone` crate fails,
for example because stderr is redirected to a location on a filesystem that is
full, or because stderr is a pipe that has been closed by the reader.
Dropping a non-Send type on the wrong thread is unsound. If used with a type
such as a pthread-based `MutexGuard`, [the consequence is undefined
behavior][mutexguard]. If used with `Rc`, there would be a data race on the
reference count, which is likewise undefined behavior.
[mutexguard]: https://github.com/rust-lang/rust/issues/23465#issuecomment-82730326