Lucene search

K
osvGoogleOSV:RUSTSEC-2023-0070
HistoryNov 10, 2023 - 12:00 p.m.

Insufficient covariance check makes self_cell unsound

2023-11-1012:00:00
Google
osv.dev
6
insufficient covariance check
self_cell
version 1.02
dependent type
covariant
not_covariant
trait object lifetimes
unsound usage
compile time error
software

7 High

AI Score

Confidence

Low

All public versions prior to 1.02 used an insufficient check to ensure that
users correctly marked the dependent type as either covariant or
not_covariant. This allowed users to mark a dependent as covariant even though
its type was not covariant but invariant, for certain invariant types involving
trait object lifetimes. One example for such a dependent type is type Dependent<'a> = RefCell<Box<dyn fmt::Display + 'a>>. Such a type allowed
unsound usage in purely safe user code that leads to undefined behavior. The
patched versions now produce a compile time error if such a type is marked as
covariant.

7 High

AI Score

Confidence

Low