Vulnerability Details : CVE-2020-36318
Potential exploit
In the standard library in Rust before 1.49.0, VecDeque::make_contiguous has a bug that pops the same element more than once under certain condition. This bug could result in a use-after-free or double free.
Vulnerability category: Memory Corruption
Products affected by CVE-2020-36318
- cpe:2.3:a:rust-lang:rust:*:*:*:*:*:*:*:*
Exploit prediction scoring system (EPSS) score for CVE-2020-36318
0.39%
Probability of exploitation activity in the next 30 days
EPSS Score History
~ 57 %
Percentile, the proportion of vulnerabilities that are scored at or less
CVSS scores for CVE-2020-36318
Base Score | Base Severity | CVSS Vector | Exploitability Score | Impact Score | Score Source | First Seen |
---|---|---|---|---|---|---|
7.5
|
HIGH | AV:N/AC:L/Au:N/C:P/I:P/A:P |
10.0
|
6.4
|
NIST | |
9.8
|
CRITICAL | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
3.9
|
5.9
|
NIST |
CWE ids for CVE-2020-36318
-
The product calls free() twice on the same memory address.Assigned by: nvd@nist.gov (Primary)
-
The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer.Assigned by: nvd@nist.gov (Primary)
References for CVE-2020-36318
-
https://github.com/rust-lang/rust/pull/79814
fix soundness issue in `make_contiguous` by lcnr · Pull Request #79814 · rust-lang/rust · GitHubPatch;Third Party Advisory
-
https://github.com/rust-lang/rust/issues/79808
VecDeque: length 0 underflow and bogus values from pop_front(), triggered by a certain sequence of reserve(), push_back(), make_contiguous(), pop_front() · Issue #79808 · rust-lang/rust · GitHubExploit;Issue Tracking;Patch;Third Party Advisory
Jump to