{"id":"RUSTSEC-2025-0165","aliases":[],"status":"published","title":"i_tree allowed out-of-bounds access through safe public node accessors","description":"Affected versions of `i_tree` exposed safe public `Tree::node` and `Tree::mut_node` methods in the public `tree` module. These methods accepted an arbitrary `u32` index and passed it directly to `Vec::get_unchecked` / `get_unchecked_mut` on the internal node buffer, without validating that the index was in bounds.\n\nBecause these methods were safe and public, a caller could pass an out-of-bounds index without writing any `unsafe` code, producing an out-of-bounds shared or mutable reference and triggering undefined behavior.\n\nStarting with `0.10.0` the crate was restructured and these accessors are no longer reachable from outside the crate.","facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"published":"2025-07-04T12:00:00Z","modified":"2026-06-29T15:15:03Z","fixes":[{"ecosystem":"crates.io","package":"i_tree","fixed_in":["0.10.0"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"crates.io","package":"i_tree","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.10.0"}]}]}],"references":[{"url":"https://crates.io/crates/i_tree","tags":["package"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2025-0165.html","tags":["advisory"]},{"url":"https://github.com/iShape-Rust/iTree/issues/1","tags":["report"]},{"url":"https://github.com/iShape-Rust/iTree/commit/a948b891cf159233bfed5b16bf185268fd9e1985","tags":["web"]},{"url":"https://github.com/iShape-Rust/iTree/compare/0.9.0...0.10.0","tags":["web"]}],"sources":{"osv":[{"id":"RUSTSEC-2025-0165","title":"i_tree allowed out-of-bounds access through safe public node accessors","description":"Affected versions of `i_tree` exposed safe public `Tree::node` and `Tree::mut_node` methods in the public `tree` module. These methods accepted an arbitrary `u32` index and passed it directly to `Vec::get_unchecked` / `get_unchecked_mut` on the internal node buffer, without validating that the index was in bounds.\n\nBecause these methods were safe and public, a caller could pass an out-of-bounds index without writing any `unsafe` code, producing an out-of-bounds shared or mutable reference and triggering undefined behavior.\n\nStarting with `0.10.0` the crate was restructured and these accessors are no longer reachable from outside the crate.","status":"published","published":"2025-07-04T12:00:00Z","modified":"2026-06-29T15:15:03.953457047Z","updated_at":"2026-11-02T15:53:40.430679Z"}]}}
