Integer overflow in `array::ReadWrite::new()` leading to potential memory corruption
In array::ReadWrite::new() (line 83 of accessor/src/array.rs),
let bytes = mem::size_of::<T>() * len can overflow usize when len is
very large. In release mode, this silently wraps, potentially making
bytes = 0. The mapper then maps with 0 bytes, and subsequent accesses
(e.g. read_volatile_at) lead to undefined behavior or memory corruption.
Note: array::ReadWrite::new() itself is unsafe, so direct triggering
requires an unsafe block. However, the integer overflow violates the
implicit safety contract expected by callers and can lead to memory
corruption downstream.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도(기본값(정보 없음)) | 55.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 55.00 |
VPI 공식 vpi-v1 기준