{"schemaVersion":3,"id":"CVE-2022-36086","aliases":["GHSA-xg8p-34w2-j49j","RUSTSEC-2022-0063"],"status":"published","duplicateOf":null,"title":null,"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>()`.","dates":{"published":"2022-09-07T22:50:09.000Z","modified":"2025-04-22T17:23:22.210Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":9.8,"severity":"critical","version":"3.1","versionLabel":"v3.1","source":"NVD","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":8.4,"severity":"high","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Crates.io","score":8.4,"severity":"high","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","exploitability":6.4,"impact":9.8,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":9.8,"severity":"critical","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00861,"percentile":0.58081,"severity":"low","asOf":"2026-10-21T00:00:00.000Z","change":{"pp":0.01999999999999988,"baselineDate":"2026-09-21T00:00:00.000Z","baselineScore":0.00841},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00841,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00841,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00841,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00841,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00841,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00841,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00841,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00841,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00841,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00841,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00861,"percentile":0.58081}],"last30":[{"date":"2026-09-21T00:00:00.000Z","score":0.00841,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00841,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00841,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00861,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00861,"percentile":0.58081}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[{"id":"GITHUB_RUST-OSDEV_LINKED-LIST-ALLOCATOR","name":"Linked List Allocator","source":"github","url":"https://github.com/rust-osdev/linked-list-allocator/security/advisories/GHSA-xg8p-34w2-j49j","maturity":"poc","reliabilityScore":0.3,"verified":false,"type":null,"platforms":[],"requiresAuth":null,"exploitdb":null,"metasploit":null}],"exploitCount":1,"weaknesses":[{"id":"CWE-119","name":"Improper Restriction of Operations within the Bounds of a Memory Buffer","description":"The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.","type":"weakness","status":"Stable","abstraction":"Class","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/119.html"},{"id":"CWE-787","name":"Out-of-bounds Write","description":"The product writes data past the end, or before the beginning, of the intended buffer.","type":"weakness","status":"Draft","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/787.html"},{"id":"CWE-1284","name":"Improper Validation of Specified Quantity in Input","description":"The product receives input that is expected to specify a quantity (such as size or length), but it does not validate or incorrectly validates that the quantity has the required properties.","type":"weakness","status":"Incomplete","abstraction":"Base","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/1284.html"}],"affected":[{"vendor":"Crates.Io","product":"linked_list_allocator","name":"linked_list_allocator","label":"linked_list_allocator","ecosystem":"Crates.Io","cpePart":null,"purl":"pkg:cargo/linked_list_allocator","purlType":"cargo","versions":[{"text":"< 0.10.2","noFixRecorded":false,"fixedIn":null},{"text":"≥ 0.0.0-0, < 0.10.2","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.10.2 | ≥ 0.0.0-0, < 0.10.2","eol":null,"hubHref":null},{"vendor":"rust-osdev","product":"linked-list-allocator","name":"linked-list-allocator","label":"linked-list-allocator","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 0.10.2","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.10.2","eol":null,"hubHref":"/vendor/rust-osdev/linked-list-allocator"}],"affectedCount":2,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/rust-osdev/linked-list-allocator/security/advisories/GHSA-xg8p-34w2-j49j","label":"github.com/rust-osdev/linked-list-allocator/security/advisories/GHSA-xg8p-34w2-j49j","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","Exploit","Mitigation","Third Party Advisory"]},{"url":"https://github.com/rust-osdev/linked-list-allocator/commit/013b0758643943e8df5b17bbb495460ff47e8bbf","label":"github.com/rust-osdev/linked-list-allocator/commit/013b0758643943e8df5b17bbb495460ff47e8bbf","hostname":"github.com","tags":["X Refsource MISC","WEB","Patch","Third Party Advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-36086","label":"nvd.nist.gov/vuln/detail/CVE-2022-36086","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/advisories/GHSA-xg8p-34w2-j49j","label":"github.com/advisories/GHSA-xg8p-34w2-j49j","hostname":"github.com","tags":["Advisory"]},{"url":"https://github.com/rust-osdev/linked-list-allocator","label":"github.com/rust-osdev/linked-list-allocator","hostname":"github.com","tags":["PACKAGE"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2022-0063.html","label":"rustsec.org/advisories/RUSTSEC-2022-0063.html","hostname":"rustsec.org","tags":["WEB","Advisory"]},{"url":"https://crates.io/crates/linked_list_allocator","label":"crates.io/crates/linked_list_allocator","hostname":"crates.io","tags":["PACKAGE"]}],"lineage":{"upstream":[],"downstream":["OPENSUSE-SU-2024:12469-1"],"duplicates":[],"related":["OPENSUSE-SU-2024:12469-1"]},"timeline":[{"kind":"published","date":"2022-09-07T22:50:09.000Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2025-04-22T17:23:22.210Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":70,"level":"high","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-22T10:45:53.752Z","stale":false,"partial":false}}