GHSA-f85w-wvc7-crwc bumpalo has use-after-free due to a lifetime error in `Vec::into_iter()`

Not scored Published

A lifetime error in bumpalo's Vec::into_iter allows use-after-free, potentially leading to memory corruption or crashes when the allocator is dropped.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Not stated
Victim action needed
Not needed
Fix
Available

What is GHSA-f85w-wvc7-crwc?

GHSA-f85w-wvc7-crwc is an use after free vulnerability in bumpalo, published on 14 Jan 2022.

Official description

In affected versions of this crate, the lifetime of the iterator produced by Vec::into_iter() is not constrained to the lifetime of the Bump that allocated the vector's memory. Using the iterator after the Bump is dropped causes use-after-free accesses.

The following example demonstrates memory corruption arising from a misuse of this unsoundness.

use bumpalo::{collections::Vec, Bump};

fn main() {
    let bump = Bump::new();
    let mut vec = Vec::new_in(&bump);
    vec.extend([0x01u8; 32]);
    let into_iter = vec.into_iter();
    drop(bump);

    for _ in 0..100 {
        let reuse_bump = Bump::new();
        let _reuse_alloc = reuse_bump.alloc([0x41u8; 10]);
    }

    for x in into_iter {
        print!("0x{:02x} ", x);
    }
    println!();
}

The issue was corrected in version 3.11.1 by adding a lifetime to the IntoIter type, and updating the signature of Vec::into_iter() to constrain this lifetime.

Which versions are affected by GHSA-f85w-wvc7-crwc?

3 open source packages ship an affected version, including bumpalo.

PackageAffectedFixed in
bumpalo crates.ioFrom 1.1.03.11.1
bumpalo crates.ioFrom 1.1.03.11.1
bumpalo crates.ioFrom 1.1.03.11.1

How do I fix GHSA-f85w-wvc7-crwc?

Upgrade bumpalo to 3.11.1 or later.

Upgrade to the fixed version. These bugs are found with fuzzing and sanitisers and avoided by memory-safe languages. More about Use after free.

Is GHSA-f85w-wvc7-crwc being exploited?

There is no known exploitation of GHSA-f85w-wvc7-crwc in the wild and no public exploit code.

Sources

Also known as RUSTSEC-2022-0078.

Is GHSA-f85w-wvc7-crwc in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free