The String API in iceoryx2-bb-container exposes its contents as mutable bytes through safe APIs, while String::as_str() converts those bytes into a Rust string slice without validating UTF-8. An application can therefore create an invalid &str and trigger undefined behavior using entirely safe Rust.
The API methods as_mut_bytes and deref_mut where removed from the String API and their implementations (PolymorphicString, RelocatableString, and StaticString ) without replacement.
Link to Pull-Request: https://github.com/eclipse-iceoryx/iceoryx2/pull/1956
{
"license": "CC0-1.0"
}{
"affected_functions": null,
"affects": {
"arch": [],
"functions": [
"iceoryx2_bb_container::string::String::as_mut_bytes",
"iceoryx2_bb_container::string::String::deref_mut",
"iceoryx2_bb_container::string::polymorphic_string::PolymorphicString::as_mut_bytes",
"iceoryx2_bb_container::string::polymorphic_string::PolymorphicString::deref_mut",
"iceoryx2_bb_container::string::relocatable_string::RelocatableString::as_mut_bytes",
"iceoryx2_bb_container::string::relocatable_string::RelocatableString::deref_mut",
"iceoryx2_bb_container::string::static_string::StaticString::as_mut_bytes",
"iceoryx2_bb_container::string::static_string::StaticString::deref_mut"
],
"os": []
}
}