mirror of
https://github.com/OMGeeky/advisory-db.git
synced 2026-01-23 20:05:15 +01:00
26 lines
1.1 KiB
TOML
26 lines
1.1 KiB
TOML
[advisory]
|
|
id = "RUSTSEC-2019-0002"
|
|
package = "slice-deque"
|
|
date = "2019-05-07"
|
|
title = "Bug in SliceDeque::move_head_unchecked corrupts its memory"
|
|
patched_versions = [">= 0.2.0"]
|
|
url = "https://github.com/gnzlbg/slice_deque/issues/57"
|
|
keywords = ["memory-corruption", "rce"]
|
|
references = ["RUSTSEC-2018-0008"]
|
|
description = """
|
|
|
|
Affected versions of this crate entered a corrupted state if
|
|
`mem::size_of::<T>() % allocation_granularity() != 0` and a specific allocation
|
|
pattern was used: sufficiently shifting the deque elements over the mirrored
|
|
page boundary.
|
|
|
|
This allows an attacker that controls controls both element insertion and
|
|
removal to corrupt the deque, such that reading elements from it would read
|
|
bytes corresponding to other elements in the deque. (e.g. a read of T could read
|
|
some bytes from one value and some bytes from an adjacent one, resulting in a T
|
|
whose value representation is not meaningful). This is undefined behavior.
|
|
|
|
The flaw was corrected by using a pair of pointers to track the head and tail of
|
|
the deque instead of a pair of indices. This pair of pointers are represented
|
|
using a Rust slice."""
|