Rust allows user-defined objects to contain a single dynamically sized field, similar to how C supports flexible arrays as the final field of a struct. Although this feature is not conceptually complicated, its implementation involves many corner cases.
Likelihood:
We have repeatedly run into cases where new RMC tests failed due to unexpected corner-cases involving dynamically sized objects. We have solved all known issues, but the rate of bug discovery in this area to date suggests that there are additional latent bugs.
Mitigation:
Path to soundness:
Rust allows user-defined objects to contain a single dynamically sized field, similar to how C supports flexible arrays as the final field of a struct. Although this feature is not conceptually complicated, its implementation involves many corner cases.
Likelihood:
We have repeatedly run into cases where new RMC tests failed due to unexpected corner-cases involving dynamically sized objects. We have solved all known issues, but the rate of bug discovery in this area to date suggests that there are additional latent bugs.
Mitigation:
Path to soundness: