---
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.78329
ingestedAt: '2026-07-17T19:00:51.686Z'
---

## Overview

Attempting 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.

An attacker that controls the value passed to `grow` may exploit this flaw to obtain memory contents or gain remote code execution.

Credits to [@ehuss](https://github.com/ehuss) for discovering, reporting and fixing the bug.

## Affected packages

- `smallvec >= 0.6.5, < 0.6.10`

## Remediation

Upgrade to a patched release:

- `smallvec 0.6.10`
