RUSTSEC-2026-0139

Source
https://rustsec.org/advisories/RUSTSEC-2026-0139
Import Source
https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0139.json
JSON Data
https://api.osv.dev/v1/vulns/RUSTSEC-2026-0139
Published
2026-05-02T12:00:00Z
Modified
2026-05-13T15:00:15Z
Summary
Null-pointer dereference and double-free via safe APIs
Details

Two soundness violations exist in the Rust bindings for MetaCall:

Null-pointer dereference: MetaCallFuture::new_raw() accepts a raw pointer without validation. The Debug impl calls Box::from_raw(self.data) on it. Passing a null pointer causes the Debug impl to construct a NonNull from null, producing undefined behavior.

Double-free: MetaCallPointer::clone() shares the same rust_value raw pointer between the clone and the original. Calling get_value_untyped() on both clones calls Box::from_raw on the same pointer twice, resulting in a double-free.

Both issues can be triggered through safe public APIs — MetaCallFuture::new_raw(), MetaCallPointer::new(), clone(), and get_value_untyped() — with no unsafe required from the caller.

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

Affected packages

crates.io / metacall

Package

Name
metacall
View open source insights on deps.dev
Purl
pkg:cargo/metacall

Affected ranges

Type
SEMVER
Events
Introduced
0.0.0-0

Ecosystem specific

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

Database specific

categories
[
    "memory-corruption"
]
cvss
null
informational
"unsound"
source
"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0139.json"