longbridgeapp/rust-i18n · Security
Use-after-free when setting the locale
- GHSA ID
- GHSA-c8v3-jhv9-4ppc
- Severity
- medium
- Published
- Updated
Description
Version 3.0.0 introduced an AtomicStr type, that is used to store the current locale. It stores the locale as a raw pointer to an Arc<String>. The locale can be read with AtomicStr::as_str(). AtomicStr::as_str() does not increment the usage counter of the Arc.
If the locale is changed in one thread, another thread can have a stale -- possibly already freed -- reference to the stored string.
CWEs
- CWE-416 · Use After Free