{"id":"GHSA-c439-chv8-8g2j","aliases":["RUSTSEC-2022-0052"],"status":"published","title":"`os_socketaddr` invalidly assumes the memory layout of std::net::SocketAddr","description":"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.\n\nThese 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.","facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"published":"2022-08-26T12:00:00Z","modified":"2023-11-08T04:18:12Z","fixes":[{"ecosystem":"crates.io","package":"os_socketaddr","fixed_in":["0.2.2"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"os_socketaddr","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.2.2"}]}]},{"source":"osv","ecosystem":"crates.io","package":"os_socketaddr","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.2.2"}]}]},{"source":"osv","ecosystem":"crates.io","package":"os_socketaddr","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.2.2"}]}]}],"references":[{"url":"https://github.com/a-ba/os_socketaddr/issues/3","tags":["web","report"]},{"url":"https://github.com/rust-lang/rust/pull/78802","tags":["web"]},{"url":"https://github.com/a-ba/os_socketaddr/commit/1bc7f71d40de069727993a18fdada33eb0b4c94f","tags":["web"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2022-0052.html","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-c439-chv8-8g2j"},{"url":"https://github.com/a-ba/os_socketaddr","tags":["package"]},{"url":"https://crates.io/crates/os_socketaddr","tags":["package"]}],"sources":{"ghsa":[{"id":"GHSA-c439-chv8-8g2j","title":"`os_socketaddr` invalidly assumes the memory layout of std::net::SocketAddr","description":"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.\n\nThese 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.\n\n","status":"published","published":"2022-09-02T22:29:41Z","modified":"2023-01-08T05:01:29Z","updated_at":"2026-11-02T14:36:01.39976Z"}],"osv":[{"id":"GHSA-c439-chv8-8g2j","title":"`os_socketaddr` invalidly assumes the memory layout of std::net::SocketAddr","description":"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.\n\nThese 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.\n\n","status":"published","published":"2022-09-02T22:29:41Z","modified":"2023-11-08T04:18:12.374709Z","updated_at":"2026-11-02T15:46:44.571161Z"},{"id":"RUSTSEC-2022-0052","title":"`os_socketaddr` invalidly assumes the memory layout of std::net::SocketAddr","description":"The [`os_socketaddr`](https://crates.io/crates/os_socketaddr) crate has assumed\n`std::net::SocketAddrV4` and `std::net::SocketAddrV6` have the same memory layout as the system C\nrepresentation `sockaddr`. It has simply casted the pointers to convert the socket addresses to the\nsystem representation.\n\nThese layout were [changed into idiomatic rust types](https://github.com/rust-lang/rust/pull/78802)\nin nightly `std`. Starting from rustc 1.64 the affected versions of this crate will have undefined\nbehaviour.","status":"published","published":"2022-08-26T12:00:00Z","modified":"2023-11-08T04:18:12.374709Z","updated_at":"2026-11-02T15:53:39.971022Z"}]}}
