RUSTSEC-2026-0242 Safe ErrorRegistry APIs can cause undefined behavior
Safe API misuse in dcrypt-api causes undefined behavior via use-after-free and type confusion, allowing potential code execution or crashes.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Not stated
- Victim action needed
- Not needed
- Fix
- Available
What is RUSTSEC-2026-0242?
RUSTSEC-2026-0242 is an use after free vulnerability in dcrypt-api, published on 9 Aug 2026.
Official description
All published versions of dcrypt-api before 2.0.0 exposed safe
ErrorRegistry operations that could trigger undefined behavior when the
default std feature was enabled.
Stored Box<E> values were erased to raw pointers and later deallocated as
Box<()>. The get_error<E> operation also performed an unchecked cast to a
caller-selected type. Finally, concurrent replacement or clearing could free a
value while another thread cloned it. Ordinary safe Rust could therefore cause
mismatched deallocation, type confusion, and use-after-free. Crates that
re-exported this API are affected transitively.
Version 2.0.0 replaces the raw pointers with owned Box<dyn Any + Send> values
behind a mutex, performs checked downcasts, and uses a mutation generation so
concurrent stores and clears win safely. There is no reliable workaround while
calling the affected registry API. Upgrade to 2.0.0 or later and avoid
process-global error state where possible.
Which versions are affected by RUSTSEC-2026-0242?
1 open source package ship an affected version, including dcrypt-api.
| Package | Affected | Fixed in |
|---|---|---|
dcrypt-api crates.io | From 0.0.0-0 | 2.0.0 |
How do I fix RUSTSEC-2026-0242?
Upgrade dcrypt-api to 2.0.0 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-0242 being exploited?
There is no known exploitation of RUSTSEC-2026-0242 in the wild and no public exploit code.
Sources
Also known as GHSA-7hc7-h3f2-r4j6.