RUSTSEC-2026-0253 Potential use-after-free due to lack of panic safety in `LruCache::pop()`
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.
| Package | Affected | Fixed in |
|---|---|---|
lru crates.io | From 0.0.0-0 | 0.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.