{"id":"GHSA-h3mf-4fwp-59c7","summary":"VecStorage Deserialize Allows Violation of Length Invariant","details":"The `Deserialize` implementation for `VecStorage` did not maintain the invariant that the number of elements must equal `nrows * ncols`. Deserialization of specially crafted inputs could allow memory access beyond allocation of the vector.\n\nThis flaw was introduced in v0.11.0 ([`086e6e`](https://github.com/dimforge/nalgebra/commit/086e6e719f53fecba6dadad2e953a487976387f5)) due to the addition of an automatically derived implementation of `Deserialize` for `MatrixVec`. `MatrixVec` was later renamed to `VecStorage` in v0.16.13 ([`0f66403`](https://github.com/dimforge/nalgebra/commit/0f66403cbbe9eeac15cedd8a906c0d6a3d8841f2)) and continued to use the automatically derived implementation of `Deserialize`.\n\nThis flaw was corrected in commit [`5bff536`](https://github.com/dimforge/nalgebra/commit/5bff5368bf38ddfa31416e4ae9897b163031a513) by returning an error during deserialization if the number of elements does not exactly match the expected size.\n","modified":"2021-08-24T18:08:17Z","published":"2021-08-05T19:58:06Z","withdrawn":"2021-08-24T18:08:17Z","database_specific":{"github_reviewed_at":"2021-08-05T19:57:42Z","nvd_published_at":null,"cwe_ids":[],"severity":"MODERATE","github_reviewed":true},"references":[{"type":"WEB","url":"https://github.com/dimforge/nalgebra/issues/883"},{"type":"WEB","url":"https://github.com/dimforge/nalgebra/pull/889"},{"type":"WEB","url":"https://github.com/dimforge/nalgebra/commit/a803271fcce75b7c151e92aa099dfa546db4adc5"},{"type":"PACKAGE","url":"https://github.com/dimforge/nalgebra"},{"type":"WEB","url":"https://github.com/dimforge/nalgebra/blob/dev/CHANGELOG.md#0270"},{"type":"WEB","url":"https://rustsec.org/advisories/RUSTSEC-2021-0070.html"}],"affected":[{"package":{"name":"nalgebra","ecosystem":"crates.io","purl":"pkg:cargo/nalgebra"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0.11.0"},{"fixed":"0.27.0"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2021/08/GHSA-h3mf-4fwp-59c7/GHSA-h3mf-4fwp-59c7.json"}}],"schema_version":"1.9.0"}