futures_task::noop_waker_ref can segfault due to dereferencing a NULL pointer
Moderate severity
GitHub Reviewed
Published
May 24, 2022
to the GitHub Advisory Database
•
Updated Jun 13, 2023
Description
Published by the National Vulnerability Database
Dec 31, 2020
Published to the GitHub Advisory Database
May 24, 2022
Reviewed
Jun 16, 2022
Last updated
Jun 13, 2023
Affected versions of the crate used a UnsafeCell in thread-local storage to return a noop waker reference, assuming that the reference would never be returned from another thread.
This resulted in a segmentation fault crash if Waker::wake_by_ref() was called on a waker returned from another thread due to it attempting to dereference a pointer that wasn't accessible from the main thread.
References