Every CVE Search/ Get API key

RUSTSEC-2026-0157

Several memory corruption issues via safe APIs

No score

Several soundness violations exist in the Rust bindings for MetaCall, indicatively:

MetaCallException::Clone: Clone is dangerous because it creates a second Rust object that still points to the same foreign MetaCall value, but does not actually own or keep that value alive. value is shallow copied and leak=true does not guarantee safety; Clone does not free the MetaCall value, but it still stores the same raw pointer. If the original is dropped, the Clone can retain a dangling pointer.

MetaCallException::new_raw: is a safe function that accepts arbitrary raw pointer and dereferences C memory. This function is only correct if the caller gives it a valid, owned MetaCall value that must be destroyed by this wrapper. The method should be internal and not exposed to the public API or be declared as unsafe and be correctly documented.

Same issues exist in MetaCallThrowable::Clone, MetaCallThrowable::new_raw, MetaCallClass::Clone, MetaCallClass::new_raw, MetaCallFuture::Clone, MetaCallFuture::new_raw, MetaCallPointer::Clone, MetaCallPointer::new_raw, MetaCallFunction::Clone, MetaCallFunction::new_raw, MetaCallObject::Clone, and MetaCallObject::new_raw.

All issues can be triggered through safe public APIs.

What each source reports

OSV No score

Several memory corruption issues via safe APIs

Several soundness violations exist in the Rust bindings for MetaCall, indicatively:

MetaCallException::Clone: Clone is dangerous because it creates a second Rust object that still points to the same foreign MetaCall value, but does not actually own or keep that value alive. value is shallow copied and leak=true does not guarantee safety; Clone does not free the MetaCall value, but it still stores the same raw pointer. If the original is dropped, the Clone can retain a dangling pointer.

MetaCallException::new_raw: is a safe function that accepts arbitrary raw pointer and dereferences C memory. This function is only correct if the caller gives it a valid, owned MetaCall value that must be destroyed by this wrapper. The method should be internal and not exposed to the public API or be declared as unsafe and be correctly documented.

Same issues exist in MetaCallThrowable::Clone, MetaCallThrowable::new_raw, MetaCallClass::Clone, MetaCallClass::new_raw, MetaCallFuture::Clone, MetaCallFuture::new_raw, MetaCallPointer::Clone, MetaCallPointer::new_raw, MetaCallFunction::Clone, MetaCallFunction::new_raw, MetaCallObject::Clone, and MetaCallObject::new_raw.

All issues can be triggered through safe public APIs.

Record
RUSTSEC-2026-0157
Updated
2026-11-02

Affected packages

Affected packages
PackageAffectedFixed
metacall
crates.io
0.0.0-0 and later None known

History

History
RecordedChangedSources
first indexedOSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

RUSTSEC-2026-0157 is a vulnerability with no CVSS score yet in metacall, published June 1, 2026. No source lists public exploit code. No source names a fixed version.

References

MoveEnter Open