RUSTSEC-2021-0028

Source
https://rustsec.org/advisories/RUSTSEC-2021-0028
Import Source
https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2021-0028.json
JSON Data
https://api.osv.dev/v1/vulns/RUSTSEC-2021-0028
Aliases
Published
2021-02-19T12:00:00Z
Modified
2023-11-08T04:05:27.607591Z
Summary
Multiple memory safety issues in insert_row
Details

When inserting rows from an iterator at a particular index, toodee would shift items over, duplicating their ownership. The space reserved for the new elements was based on the len() returned by the ExactSizeIterator.

This could result in elements in the array being freed twice if the iterator panics. Uninitialized or previously freed elements could also be exposed if the len() didn't match the number of elements.

These issues were fixed in commit ced70c17 by temporarily setting the length of the array smaller while processing it and adding assertions on the number of elements returned by the iterator.

Database specific
{
    "license": "CC0-1.0"
}
References

Affected packages

crates.io / toodee

Package

Affected ranges

Type
SEMVER
Events
Introduced
0.0.0-0
Fixed
0.3.0

Ecosystem specific

{
    "affected_functions": null,
    "affects": {
        "os": [],
        "functions": [
            "toodee::TooDee::insert_row"
        ],
        "arch": []
    }
}

Database specific

{
    "cvss": null,
    "informational": null,
    "categories": [
        "memory-corruption"
    ]
}