{"id":"CVE-2020-35903","aliases":["EUVD-2021-1852","GHSA-qxjq-v4wf-ppvh","RUSTSEC-2020-0050"],"status":"published","title":"Out of bounds read in dync","description":"An issue was discovered in the dync crate before 0.5.0 for Rust. VecCopy allows misaligned element access because u8 is not always the type in question.","severity":{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.00379,"percentile":0.32135,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-125"],"published":"2020-09-27T12:00:00Z","modified":"2026-06-17T03:14:34Z","fixes":[{"ecosystem":"crates.io","package":"dync","fixed_in":["0.5.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"dync","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.5.0"}]}]},{"source":"osv","ecosystem":"crates.io","package":"dync","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.5.0"}]}]},{"source":"osv","ecosystem":"crates.io","package":"dync","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.5.0"}]}]}],"products":[{"vendor":"dync_project","product":"dync"}],"references":[{"url":"https://rustsec.org/advisories/RUSTSEC-2020-0050.html","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","web","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-35903","tags":["advisory"]},{"url":"https://github.com/elrnv/dync/issues/4","tags":["web","report"]},{"url":"https://github.com/advisories/GHSA-qxjq-v4wf-ppvh"},{"url":"https://github.com/elrnv/dync","tags":["package"]},{"url":"https://crates.io/crates/dync","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2020-35903","description":"An issue was discovered in the dync crate before 0.5.0 for Rust. VecCopy allows misaligned element access because u8 is not always the type in question.","status":"published","published":"2020-12-31T08:21:49Z","modified":"2024-08-04T17:16:13.156Z","updated_at":"2026-11-02T14:35:57.975444Z"}],"euvd":[{"id":"EUVD-2021-1852","description":"An issue was discovered in the dync crate before 0.5.0 for Rust. VecCopy allows misaligned element access because u8 is not always the type in question.","status":"published","published":"2020-12-31T08:21:49Z","modified":"2024-08-04T17:16:13Z","updated_at":"2026-11-03T03:07:04.065361Z"}],"ghsa":[{"id":"GHSA-qxjq-v4wf-ppvh","title":"Out of bounds read in dync","description":"VecCopy::data is created as a Vec of u8 but can be used to store and retrieve elements of different types leading to misaligned access.\n\nThe issue was resolved in v0.5.0 by replacing data being stored by Vec\u003cu8\u003e with a custom managed pointer. Elements are now stored and retrieved using types with proper alignment corresponding to original types.","status":"published","published":"2021-08-25T20:49:47Z","modified":"2023-06-13T17:12:15Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-125"],"updated_at":"2026-11-02T14:36:53.654352Z"}],"nvd":[{"id":"CVE-2020-35903","description":"An issue was discovered in the dync crate before 0.5.0 for Rust. VecCopy allows misaligned element access because u8 is not always the type in question.","status":"published","published":"2020-12-31T09:15:15.02Z","modified":"2026-06-17T03:14:34.373Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"primary"},{"version":"2.0","score":2.1,"vector":"AV:L/AC:L/Au:N/C:N/I:N/A:P","level":"low","assessor":"primary"}],"updated_at":"2026-11-02T14:06:28.340168Z"}],"osv":[{"id":"GHSA-qxjq-v4wf-ppvh","title":"Out of bounds read in dync","description":"VecCopy::data is created as a Vec of u8 but can be used to store and retrieve elements of different types leading to misaligned access.\n\nThe issue was resolved in v0.5.0 by replacing data being stored by Vec\u003cu8\u003e with a custom managed pointer. Elements are now stored and retrieved using types with proper alignment corresponding to original types.","status":"published","published":"2021-08-25T20:49:47Z","modified":"2023-11-08T04:03:38.488178Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-125"],"updated_at":"2026-11-02T15:46:55.122811Z"},{"id":"RUSTSEC-2020-0050","title":"VecCopy allows misaligned access to elements","description":"`VecCopy::data` is created as a Vec of u8 but can be used to store and retrieve\nelements of different types leading to misaligned access.\n\nThe issue was resolved in v0.5.0 by replacing data being stored by `Vec\u003cu8\u003e` with a custom managed\npointer.  Elements are now stored and retrieved using types with proper alignment corresponding to\noriginal types.","status":"published","published":"2020-09-27T12:00:00Z","modified":"2023-11-08T04:03:38.488178Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:53:39.492624Z"}]}}
