Skip to content
OpenAdvisories
Unscored RUSTSEC-2026-0127

Integer overflow in `array::ReadWrite::new()` leading to potential memory corruption

Published May 2, 2026 · Updated May 13, 2026 · Assigned by RUSTSEC

Description

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.

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io accessor >= 0.0.0-0 — RUSTSEC-2026-0127

References