{"id":"RUSTSEC-2026-0295","aliases":[],"status":"published","title":"Memory corruption bug on `ApplyResult` type","description":"The `ApplyResult` type contains a raw pointer to a C++ memory object and has a derived `Clone` implementation which creates a reference to this object without incrementing the associated reference counter. \n\nAs a result, if an instance of `ApplyResult` is duplicated through `Clone` and both instances are dropped a use-after-free can occur.","facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"published":"2026-08-12T12:00:00Z","modified":"2026-09-21T10:15:04Z","fixes":[{"ecosystem":"crates.io","package":"z3","fixed_in":["0.21.0"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"crates.io","package":"z3","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.21.0"}]}]}],"references":[{"url":"https://crates.io/crates/z3","tags":["package"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2026-0295.html","tags":["advisory"]},{"url":"https://github.com/prove-rs/z3.rs/pull/578","tags":["web"]}],"sources":{"osv":[{"id":"RUSTSEC-2026-0295","title":"Memory corruption bug on `ApplyResult` type","description":"The `ApplyResult` type contains a raw pointer to a C++ memory object and has a derived `Clone` implementation which creates a reference to this object without incrementing the associated reference counter. \n\nAs a result, if an instance of `ApplyResult` is duplicated through `Clone` and both instances are dropped a use-after-free can occur.","status":"published","published":"2026-08-12T12:00:00Z","modified":"2026-09-21T10:15:04.32985003Z","updated_at":"2026-11-02T15:53:40.430679Z"}]}}
