mirror of
https://github.com/OMGeeky/advisory-db.git
synced 2026-02-23 15:38:27 +01:00
Add unsoundness in os_socketaddr (#1384)
This commit is contained in:
25
crates/os_socketaddr/RUSTSEC-0000-0000.md
Normal file
25
crates/os_socketaddr/RUSTSEC-0000-0000.md
Normal file
@@ -0,0 +1,25 @@
|
||||
```toml
|
||||
[advisory]
|
||||
id = "RUSTSEC-0000-0000"
|
||||
package = "os_socketaddr"
|
||||
date = "2022-08-26"
|
||||
url = "https://github.com/a-ba/os_socketaddr/issues/3"
|
||||
categories = ["memory-corruption"]
|
||||
keywords = ["memory", "layout", "cast"]
|
||||
informational = "unsound"
|
||||
|
||||
[versions]
|
||||
patched = [">= 0.2.2"]
|
||||
```
|
||||
|
||||
# `os_socketaddr` invalidly assumes the memory layout of std::net::SocketAddr
|
||||
|
||||
The [`os_socketaddr`](https://crates.io/crates/os_socketaddr) crate has assumed
|
||||
`std::net::SocketAddrV4` and `std::net::SocketAddrV6` have the same memory layout as the system C
|
||||
representation `sockaddr`. It has simply casted the pointers to convert the socket addresses to the
|
||||
system representation.
|
||||
|
||||
These layout were [changed into idiomatic rust types](https://github.com/rust-lang/rust/pull/78802)
|
||||
in nightly `std`. Starting from rustc 1.64 the affected versions of this crate will have undefined
|
||||
behaviour.
|
||||
|
||||
Reference in New Issue
Block a user