{"id":"RUSTSEC-2023-0056","summary":"Default functions in VolatileMemory trait lack bounds checks, potentially leading to out-of-bounds memory accesses","details":"An issue was discovered in the default implementations of the `VolatileMemory::{get_atomic_ref, aligned_as_ref, aligned_as_mut, get_ref, get_array_ref}` trait functions, which allows out-of-bounds memory access if the `VolatileMemory::get_slice` function returns a `VolatileSlice` whose length is less than the function’s `count` argument. No implementations of `get_slice` provided in `vm_memory` are affected. Users of custom `VolatileMemory` implementations may be impacted if the custom implementation does not adhere to `get_slice`'s documentation.\n\nThe issue started in version 0.1.0 but was fixed in version 0.12.2 by inserting a check that verifies that the `VolatileSlice` returned by `get_slice` is of the correct length.","aliases":["CVE-2023-41051","GHSA-49hh-fprx-m68g"],"modified":"2023-11-08T04:13:24.188980Z","published":"2023-09-01T12:00:00Z","database_specific":{"license":"CC0-1.0"},"references":[{"type":"PACKAGE","url":"https://crates.io/crates/vm-memory"},{"type":"ADVISORY","url":"https://rustsec.org/advisories/RUSTSEC-2023-0056.html"},{"type":"REPORT","url":"https://github.com/rust-vmm/vm-memory/issues/250"},{"type":"WEB","url":"https://github.com/rust-vmm/vm-memory/commit/aff1dd4a5259f7deba56692840f7a2d9ca34c9c8"}],"affected":[{"package":{"name":"vm-memory","ecosystem":"crates.io","purl":"pkg:cargo/vm-memory"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.12.2"}]}],"ecosystem_specific":{"affects":{"functions":["vm_memory::volatile_memory::VolatileMemory::aligned_as_mut","vm_memory::volatile_memory::VolatileMemory::aligned_as_ref","vm_memory::volatile_memory::VolatileMemory::get_array_ref","vm_memory::volatile_memory::VolatileMemory::get_atomic_ref","vm_memory::volatile_memory::VolatileMemory::get_ref"],"os":[],"arch":[]},"affected_functions":null},"database_specific":{"categories":["memory-exposure"],"informational":"unsound","source":"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2023-0056.json","cvss":"CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:L"}}],"schema_version":"1.7.3","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:L"}]}