Rust 安全参考 | 内存相关漏洞

RUSTSEC-2022-0002: dashmap 中的引用出现 UAF

由Ref(和类似类型)的一些方法返回的引用可能会超过Ref并逃脱锁。这将导致未定义的行为,并可能导致一个段错误。

RUSTSEC-2022-0008: Windows-rs 中 Delegate 函数缺乏 Send 限定

RUSTSEC-2022-0012: Arrow2 在 Safe 代码中出现双重释放(double-free)

Ffi_ArrowArray 结构体错误实现 #derive(Clone) ,因为它是一个 FFi 绑定,实现 Clone 会导致出现两份指针,从而导致双重释放。

RUSTSEC-2022-0003: ammonia 中存在格式化注入漏洞

clean_text中错误映射 HTML 的 Form Feed,导致注入漏洞。


#![allow(unused)]
fn main() {
let html = format!("<div title={}>", clean_text(user_supplied_string));
}

RUSTSEC-2022-0006: thread_local crate 中的 RawIter::next 存在数据竞争

主要是因为内存顺序指定错误而引起的,解决起来也比较简单,修改为正确的内存顺序即可。

RUSTSEC-2022-0016: wasmtimeexternref 在启用 epoch 中断时会导致 UAF

epoch 中断会导致 wasmtime 在执行 GC 时错误回收还在使用的内存,从而导致 UAF。