CVE-2022-36086
Rust vulnerability analysis and mitigation

Overview

CVE-2022-36086 is a high-severity vulnerability affecting the linked-list-allocator Rust crate versions <=0.10.1. The vulnerability was discovered in September 2022 and involves potential out-of-bounds writes during heap initialization and extension operations. The issue affects all initialization functions on the Heap and LockedHeap types, including Heap::new, Heap::init, Heap::init_from_slice, and LockedHeap::new, as well as multiple uses of the Heap::extend method (GitHub Advisory).

Technical details

The vulnerability stems from multiple implementation flaws: 1) Heap initialization methods lacked minimum size checks for heap size arguments, potentially leading to out-of-bounds writes when initialized with size smaller than 3 * size_of::. 2) The Heap::extend method could cause out-of-bounds writes when called with sizes smaller than two usizes, when called on an empty heap, or when the heap size was not properly aligned. 3) Unaligned writes could occur when calling Heap::extend on a heap whose size is not a multiple of two usizes, leaving the heap in an unexpected state (GitHub Advisory).

Impact

The vulnerability could lead to out-of-bounds writes, which could potentially allow attackers to corrupt memory. This could result in undefined behavior, particularly on platforms that fault on unaligned writes. The issue affects all users of the linked-list-allocator crate versions 0.10.1 and earlier (GitHub Advisory).

Exploitability

The vulnerability can be triggered through multiple vectors: initializing a heap with insufficient size, extending a heap with small sizes, or operating on unaligned heaps. While the potential for exploitation exists, no specific exploitation methods have been documented beyond potential denial of service on platforms that fault on unaligned writes (GitHub Advisory).

Mitigation and workarounds

The vulnerability has been patched in version 0.10.2 of the linked-list-allocator crate. The patch includes several fixes: initialization functions now panic if given size is insufficient, extend method panics on uninitialized heaps, small extend calls are buffered internally, and the size() method returns the usable heap size. As a workaround, users should ensure heap initialization size is larger than 3 * size_of::, Heap::extend is called with sizes larger than 2 * size_of::(), and total heap size remains a multiple of 2 * size_of::() (GitHub Advisory).

Additional resources


SourceThis report was generated using AI

Related Rust vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

RUSTSEC-2026-0278HIGH7.3
  • Rust logoRust
  • zbus_polkit
NoYesAug 31, 2026
CVE-2026-53600MEDIUM6.3
  • Rust logoRust
  • zed
NoYesSep 02, 2026
RUSTSEC-2026-0282NONEN/A
  • Rust logoRust
  • aligned_box
NoYesSep 09, 2026
RUSTSEC-2026-0281NONEN/A
  • Rust logoRust
  • greentic-setup
NoYesSep 07, 2026
RUSTSEC-2026-0280NONEN/A
  • Rust logoRust
  • greentic-setup-dev
NoYesSep 07, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management