RUSTSEC-2026-0242

Source
https://rustsec.org/advisories/RUSTSEC-2026-0242
Import Source
https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0242.json
JSON Data
https://api.osv.dev/v1/vulns/RUSTSEC-2026-0242
Aliases
  • GHSA-7hc7-h3f2-r4j6
Published
2026-08-09T12:00:00Z
Modified
2026-08-09T12:45:04.196814922Z
Summary
Safe ErrorRegistry APIs can cause undefined behavior
Details

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.

Database specific
{
    "license": "CC0-1.0"
}
References

Affected packages

crates.io / dcrypt-api

Package

Affected ranges

Type
SEMVER
Events
Introduced
0.0.0-0
Fixed
2.0.0

Ecosystem specific

{
    "affected_functions": null,
    "affects": {
        "os": [],
        "functions": [],
        "arch": []
    }
}

Database specific

cvss
null
source
"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0242.json"
categories
[
    "memory-corruption",
    "thread-safety"
]
informational
null