Skip to content
OpenAdvisories
High · 8.4 CVE-2022-36086 EUVD-2022-6977GHSA-xg8p-34w2-j49jRUSTSEC-2022-0063

linked_list_allocator vulnerable to out-of-bound writes on `Heap` initialization and `Heap::extend`

Published Sep 7, 2022 · Updated Apr 22, 2025 · Assigned by GitHub_M

Description

linked_list_allocator is an allocator usable for no_std systems. Prior to version 0.10.2, the heap initialization methods were missing a minimum size check for the given heap size argument. This could lead to out-of-bound writes when a heap was initialized with a size smaller than `3 * size_of::<usize>` because of metadata write operations. This vulnerability impacts all the initialization functions on the `Heap` and `LockedHeap` types, including `Heap::new`, `Heap::init`, `Heap::init_from_slice`, and `LockedHeap::new`. It also affects multiple uses of the `Heap::extend` method. Version 0.10.2 contains a patch for the issue. As a workaround, ensure that the heap is only initialized with a size larger than `3 * size_of::<usize>` and that the `Heap::extend` method is only called with sizes larger than `2 * size_of::<usize>()`. Also, ensure that the total heap size is (and stays) a multiple of `2 * size_of::<usize>()`.

Affected products

VendorProductAffectedFixed
rust-osdev linked-list-allocator < 0.10.2 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
openSUSE Tumbleweed cargo-audit-advisory-db 20221102-1.1 openSUSE-SU-2024:12469-1

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io linked_list_allocator < 0.10.2 0.10.2 GHSA-xg8p-34w2-j49j
crates.io linked_list_allocator >= 0.0.0-0, < 0.10.2 0.10.2 RUSTSEC-2022-0063

Advisories 1

References