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.
{
"nvd_published_at": null,
"severity": "MODERATE",
"github_reviewed_at": "2024-01-23T20:10:48Z",
"github_reviewed": true,
"cwe_ids": [
"CWE-416"
]
}