Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions crates/cve-rs/RUSTSEC-0000-0000.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
```toml
[advisory]
id = "RUSTSEC-0000-0000"
package = "cve-rs"
date = "2025-02-10"
url = "https://github.com/Speykious/cve-rs"
categories = ["memory-corruption"]
informational = "unsound"
keywords = ["soundness-hole"]

[versions]
patched = []
unaffected = []
```

# cve-rs introduces memory vulnerabilities in safe Rust

`cve-rs` allows you to introduce common memory vulnerabilities (such as buffer overflows and segfaults) into your Rust program in a memory safe manner.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I saw some discussion above about the utility of restating the project's satirical description. I don't have much of anything to suggest in regards to this PR, but if someone makes a PR in the future and wants to change the descriptions, I propose:

`cve-rs` provides demonstrations of common memory vulnerabilities (such as buffer overflows and segfaults) implemented completely within safe Rust.

I'm fine either way. That being said, I don't have much experience using Rustsec (I probably should).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For you too: a PR making this change would be great!


Internally, this crate does not use unsafe code, it instead exploits a soundness bug in rustc: https://github.com/rust-lang/rust/issues/25860
20 changes: 20 additions & 0 deletions crates/totally-safe-transmute/RUSTSEC-0000-0000.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
```toml
[advisory]
id = "RUSTSEC-0000-0000"
package = "totally-safe-transmute"
date = "2025-02-10"
url = "https://github.com/ben0x539/totally-safe-transmute"
categories = ["memory-corruption"]
informational = "unsound"
keywords = ["soundness-hole"]

[versions]
patched = []
unaffected = []
```

# totally-safe-transmute allows transmuting any type to any other type in safe Rust

This crate uses a known soundness issue (https://github.com/rust-lang/rust/issues/32670) that will never get fixed. In short, Linux provides a file called `/proc/self/mem` which can be used by a program to modify its own memory. This library modifies an enum variant number by accessing its own memory as a file to effectively transmute a variable.

See also <https://doc.rust-lang.org/std/os/unix/io/index.html#procselfmem-and-similar-os-features>
18 changes: 18 additions & 0 deletions crates/totally-safe/RUSTSEC-0000-0000.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
```toml
[advisory]
id = "RUSTSEC-0000-0000"
package = "totally-safe"
date = "2025-02-10"
url = "https://github.com/viktorlott/totally-safe"
categories = ["memory-corruption"]
informational = "unsound"
keywords = ["soundness-hole"]

[versions]
patched = []
unaffected = []
```

# totally-safe introduces memory vulnerabilities in safe Rust

`totally-safe` provides unsound APIs that exploit a soundness bug in rustc: https://github.com/rust-lang/rust/issues/25860