RUSTSEC-2026-0253 Potential use-after-free due to lack of panic safety in `LruCache::pop()`

Not scored Published

A use-after-free vulnerability in the lru crate allows memory corruption if a key's Drop implementation panics during pop operations.

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

What is RUSTSEC-2026-0253?

RUSTSEC-2026-0253 is an use after free vulnerability in lru, published on 12 May 2026.

Official description

LruCache::pop() in lru was not panic-safe. If the Drop implementation of a stored key panics during pop(), self.detach() is never called, leaving dangling pointers in the internal doubly-linked list.

A subsequent cache operation that triggers eviction can then dereference these dangling pointers:

  • The node is freed from the map, but remains linked in the LRU list due to the skipped detach() call
  • When a new insertion causes eviction, the LRU traversal encounters the dangling pointer
  • This results in a write to already-freed memory during the eviction process

Impact

  • CWE-416 (Use-After-Free): memory corruption when subsequent cache operations access freed node pointers in the linked list
  • CWE-415 (Double Free): potential heap corruption when the same memory is freed multiple times

Both types of undefined behavior can be invoked in safe Rust, but only if unwinding panics are enabled and std::panic::catch_unwind is used with key types that have potentially-panicking Drop implementations.

Fix

Fixed in lru 0.18.2 by detaching the node from the linked list before freeing it and dropping the key (lru-rs#238).

Which versions are affected by RUSTSEC-2026-0253?

1 open source package ship an affected version, including lru.

PackageAffectedFixed in
lru crates.ioFrom 0.0.0-00.18.2

How do I fix RUSTSEC-2026-0253?

Upgrade lru to 0.18.2 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 RUSTSEC-2026-0253 being exploited?

There is no known exploitation of RUSTSEC-2026-0253 in the wild and no public exploit code.

Sources

Is RUSTSEC-2026-0253 in your software?

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

Check your SBOMs for free