{"id":"RUSTSEC-2026-0202","aliases":[],"status":"published","title":"`let_cxx_string!` uses uninitialized value due to exception safety violations","description":"In affected versions of this crate, `let_cxx_string!` is not exception safe. After creating the `StackString`, if `match $value` panics, the content of `StackString` is not yet initialized, while the drop implementation of `StackString` unconditionally deinitializes the content, leading to use of uninitialized value.\n\nThe soundness issue was fixed in version `1.0.195` by moving drop logics to separate drop guard after initializing the `StackString`.","facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"published":"2026-07-05T12:00:00Z","modified":"2026-07-05T08:45:04Z","fixes":[{"ecosystem":"crates.io","package":"cxx","fixed_in":["1.0.195"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"crates.io","package":"cxx","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"1.0.195"}]}]}],"references":[{"url":"https://crates.io/crates/cxx","tags":["package"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2026-0202.html","tags":["advisory"]},{"url":"https://github.com/dtolnay/cxx/issues/1729","tags":["report"]}],"sources":{"osv":[{"id":"RUSTSEC-2026-0202","title":"`let_cxx_string!` uses uninitialized value due to exception safety violations","description":"In affected versions of this crate, `let_cxx_string!` is not exception safe. After creating the `StackString`, if `match $value` panics, the content of `StackString` is not yet initialized, while the drop implementation of `StackString` unconditionally deinitializes the content, leading to use of uninitialized value.\n\nThe soundness issue was fixed in version `1.0.195` by moving drop logics to separate drop guard after initializing the `StackString`.","status":"published","published":"2026-07-05T12:00:00Z","modified":"2026-07-05T08:45:04.168768726Z","updated_at":"2026-11-02T15:53:40.430679Z"}]}}
