socket2 invalidly assumes the memory layout of std::net::SocketAddr
Moderate severity
GitHub Reviewed
Published
Aug 25, 2021
to the GitHub Advisory Database
•
Updated Feb 12, 2024
Description
Published by the National Vulnerability Database
Dec 31, 2020
Reviewed
Aug 19, 2021
Published to the GitHub Advisory Database
Aug 25, 2021
Last updated
Feb 12, 2024
The socket2 crate has assumed
std::net::SocketAddrV4
andstd::net::SocketAddrV6
have the same memory layout as the system C representationsockaddr
. It has simply casted the pointers to convert the socket addresses to the system representation. The standard library does not say anything about the memory layout, and this will cause invalid memory access if the standard library changes the implementation. No warnings or errors will be emitted once the change happens.References