{"id":"CVE-2019-15551","aliases":["RUSTSEC-2019-0009","GHSA-mm7v-vpv8-xfc3"],"title":"Double-free and use-after-free in SmallVec::grow()","summary":"Double-free and use-after-free in SmallVec::grow()","severity":"critical","cvss":9.8,"cvssVector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","vendor":"smallvec","product":"smallvec","ecosystem":"rust","affected":["smallvec >= 0.6.5, < 0.6.10"],"patched":["smallvec 0.6.10"],"published":"2019-06-06","updated":"2026-07-17","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/RUSTSEC-2019-0009","references":[{"url":"https://crates.io/crates/smallvec"},{"url":"https://rustsec.org/advisories/RUSTSEC-2019-0009.html"},{"url":"https://github.com/servo/rust-smallvec/issues/148"}],"tags":["osv","rust"],"epss":0.01862,"epssPercentile":0.78325,"ingestedAt":"2026-07-17T19:00:51.686Z","slug":"CVE-2019-15551","body":"## Overview\n\nAttempting to call `grow` on a spilled SmallVec with a value equal to the current capacity causes it to free the existing data. This performs a double free immediately and may lead to use-after-free on subsequent accesses to the SmallVec contents.\n\nAn attacker that controls the value passed to `grow` may exploit this flaw to obtain memory contents or gain remote code execution.\n\nCredits to [@ehuss](https://github.com/ehuss) for discovering, reporting and fixing the bug.\n\n## Affected packages\n\n- `smallvec >= 0.6.5, < 0.6.10`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `smallvec 0.6.10`","depth":"midnight","depthScore":54,"depthScoreParts":{"impact":53.9,"likelihood":0.4,"exploitation":0,"ransomware":0},"changes":[]}