Every CVE Search/ Get API key

RUSTSEC-2026-0128

Double-free and use-after-free in `Keys::next()`

No score

Keys::next() uses ptr::read to move out the Option<V> by value, which drops the contained V when V is non-Copy (e.g. String). This leaves a dangling value in the map's storage slot. Subsequent get() operations on that key return a dangling reference to already-freed memory.

This can be triggered through safe public APIs — Map::keys(), Keys::next(), and Map::get() — with no unsafe required from the caller. Under Miri, accessing the freed slot produces "Undefined Behavior: pointer not dereferenceable: alloc has been freed, so this pointer is dangling".

What each source reports

OSV No score

Double-free and use-after-free in `Keys::next()`

Keys::next() uses ptr::read to move out the Option<V> by value, which drops the contained V when V is non-Copy (e.g. String). This leaves a dangling value in the map's storage slot. Subsequent get() operations on that key return a dangling reference to already-freed memory.

This can be triggered through safe public APIs — Map::keys(), Keys::next(), and Map::get() — with no unsafe required from the caller. Under Miri, accessing the freed slot produces "Undefined Behavior: pointer not dereferenceable: alloc has been freed, so this pointer is dangling".

Record
RUSTSEC-2026-0128
Updated
2026-11-02

Affected packages

Affected packages
PackageAffectedFixed
emap
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-0128 is a vulnerability with no CVSS score yet in emap, published May 2, 2026. No source lists public exploit code. No source names a fixed version.

References

MoveEnter Open