#内存安全 #安全 #安全 #CVE #内存块 #正确性 #段错误

程序+库 cve-rs

闪电般快速的内存漏洞,100% 安全的 Rust 编写

6 个版本 (破坏性)

0.6.0 2024 年 2 月 21 日
0.5.0 2024 年 2 月 20 日
0.4.0 2024 年 2 月 20 日
0.3.0 2024 年 2 月 17 日
0.1.0 2024 年 2 月 16 日

#522Rust 模式

自定义许可

81KB
330

闪电般 🔥 快速 🚀 的内存漏洞,100% 安全的 Rust 编写。 🦀

cve-rs 允许您以内存安全的方式将常见的内存漏洞(如缓冲区溢出和段错误)引入您的 Rust 程序。

Rust 是一种令人惊叹的语言。您可以在确保程序安全的同时编写很多有用的东西。不幸的是,安全 Rust 相当有限。例如,您不能引入可能损坏程序内存的代码。现在,有了 cve-rs,您可以在不损坏程序内存的情况下破坏程序内存。

我们非常致力于确保 cve-rs 具有内存安全性。我们知道不安全代码可能产生意外的后果,例如可能导致程序不安全或不稳定的内存不安全。

这就是为什么 cve-rs 在整个代码库中使用了 #![deny(unsafe_code)]。在这个项目中没有一块 std::mem::transmute 的不安全代码。

* 令人遗憾的是,有一个例外:在我们的测试中,我们将我们安全 transmute 函数的结果与标准库实现进行比较。可能有些短视,标准库实现是不安全的。无论如何,这仅限于我们的测试 - 核心库没有不安全代码。

cve-rs 在安全 Rust 中实现了以下错误

  • 使用后释放
  • 缓冲区溢出
  • 段错误

cve-rs 还包含以下安全重实现

  • std::mem::transmute
  • std::ptr::null()/null_mut()但对于引用

以下是一个使用segfault子命令的示例

segfault demo

安装

cve-rs可以直接与Cargo一起使用。

将其用作库

cargo add cve-rs

或运行我们的示例二进制文件

cargo install cve-rs

WASM支持

cve-rs通过WASI API支持WASM。

您可以使用以下命令使用Wasmer编译和运行它

cargo build --target wasm32-wasi
wasmer run target/wasm32-wasi/debug/cve-rs.wasm

贡献者

特别感谢@Bright-Shard@Creative0708

我可以在生产中使用cve-rs吗?

本项目采用GLWTSPL许可。

许可

本项目采用GLWTSPL许可。

Good Luck

依赖项

~0–345KB