Unsound
RUSTSEC-2022-0007: qcell crate 中 TCell
或 TLCell
的内存能被恶意代码访问
因为生命周期参数型变未使用正确而引起的问题,导致恶意代码可以对同一片内存获取两个可变引用。解决方法是把类型参数的协变(Covariant)改为不变(Invariant)。
RUSTSEC-2022-0010:Enum错误实现 trait时 enum_map 宏可能会导致 UB
enum_map!
受影响版本在使用宏时未正确检查枚举的长度,信任用户提供的长度。
当Enum
trait 中的 LENGTH
与 EnumArray
trait 中的数组长度不匹配 时,可能会导致枚举映射初始化为未初始化的类型,进而允许攻击者执行任意代码。
这个问题只能在手动实现 Enum trait 时发生,它永远不会发生在使用#[derive(Enum)].
触发此漏洞的示例代码如下所示: