mirror of
https://github.com/OMGeeky/advisory-db.git
synced 2026-01-06 11:39:45 +01:00
rust-i18n-support: Use-after-free when setting the locale (#1855)
This commit is contained in:
30
crates/rust-i18n-support/RUSTSEC-0000-0000.md
Normal file
30
crates/rust-i18n-support/RUSTSEC-0000-0000.md
Normal file
@@ -0,0 +1,30 @@
|
||||
```toml
|
||||
[advisory]
|
||||
id = "RUSTSEC-0000-0000"
|
||||
package = "rust-i18n-support"
|
||||
date = "2024-01-19"
|
||||
url = "https://github.com/longbridgeapp/rust-i18n/issues/71"
|
||||
informational = "unsound"
|
||||
categories = ["memory-exposure"]
|
||||
references = [
|
||||
"https://github.com/longbridgeapp/rust-i18n/pull/72",
|
||||
"https://github.com/longbridgeapp/rust-i18n/releases/tag/v3.0.1",
|
||||
]
|
||||
|
||||
[affected]
|
||||
functions = { "rust_i18n_support::AtomicStr::as_str" = ["< 3.0.1, >= 3.0.0"] }
|
||||
|
||||
[versions]
|
||||
patched = [">= 3.0.1"]
|
||||
unaffected = ["< 3.0.0"]
|
||||
```
|
||||
|
||||
# Use-after-free when setting the locale
|
||||
|
||||
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.
|
||||
Reference in New Issue
Block a user