{"id":"CVE-2019-15554","aliases":["DEBIAN-CVE-2019-15554","EUVD-2021-1594","GHSA-69gw-hgj3-45m7","RUSTSEC-2019-0012"],"status":"published","title":"Memory corruption in smallvec","description":"An issue was discovered in the smallvec crate before 0.6.10 for Rust. There is memory corruption for certain grow attempts with less than the current capacity.","severity":{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.02144,"percentile":0.82204,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-787"],"published":"2019-07-19T12:00:00Z","modified":"2026-10-20T10:50:44Z","fixes":[{"ecosystem":"crates.io","package":"smallvec","fixed_in":["0.6.10"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"rust-smallvec","fixed_in":["0.6.10-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"rust-smallvec","fixed_in":["0.6.10-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"rust-smallvec","fixed_in":["0.6.10-1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"smallvec","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.6.3"},{"fixed":"0.6.10"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"rust-smallvec","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.6.10-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"rust-smallvec","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.6.10-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"rust-smallvec","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.6.10-1"}]}]},{"source":"osv","ecosystem":"crates.io","package":"smallvec","ranges":[{"type":"SEMVER","events":[{"introduced":"0.6.3"},{"fixed":"0.6.10"}]}]},{"source":"osv","ecosystem":"crates.io","package":"smallvec","ranges":[{"type":"SEMVER","events":[{"introduced":"0.6.3"},{"fixed":"0.6.10"}]}]}],"products":[{"vendor":"servo","product":"smallvec"}],"references":[{"url":"https://rustsec.org/advisories/RUSTSEC-2019-0012.html","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/servo/rust-smallvec/issues/149","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2019-15554","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-69gw-hgj3-45m7"},{"url":"https://security-tracker.debian.org/tracker/CVE-2019-15554","tags":["advisory"]},{"url":"https://github.com/servo/rust-smallvec","tags":["package"]},{"url":"https://crates.io/crates/smallvec","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2019-15554","description":"An issue was discovered in the smallvec crate before 0.6.10 for Rust. There is memory corruption for certain grow attempts with less than the current capacity.","status":"published","published":"2019-08-26T14:35:22Z","modified":"2024-08-05T00:49:13.683Z","updated_at":"2026-11-02T14:20:21.397307Z"}],"euvd":[{"id":"EUVD-2021-1594","description":"An issue was discovered in the smallvec crate before 0.6.10 for Rust. There is memory corruption for certain grow attempts with less than the current capacity.","status":"published","published":"2019-08-26T14:35:22Z","modified":"2024-08-05T00:49:13Z","updated_at":"2026-11-03T02:40:35.584574Z"}],"ghsa":[{"id":"GHSA-69gw-hgj3-45m7","title":"Memory corruption in smallvec","description":"Attempting to call grow on a spilled SmallVec with a value less than the current capacity causes corruption of memory allocator data structures. An attacker that controls the value passed to grow may exploit this flaw to obtain memory contents or gain remote code execution.","status":"published","published":"2021-08-25T20:43:58Z","modified":"2023-06-13T21:37:37Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-787"],"updated_at":"2026-11-02T14:36:54.225318Z"}],"nvd":[{"id":"CVE-2019-15554","description":"An issue was discovered in the smallvec crate before 0.6.10 for Rust. There is memory corruption for certain grow attempts with less than the current capacity.","status":"published","published":"2019-08-26T15:15:12.187Z","modified":"2026-06-17T02:20:37.45Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-787"],"updated_at":"2026-11-02T14:05:23.725587Z"}],"osv":[{"id":"CVE-2019-15554","description":"An issue was discovered in the smallvec crate before 0.6.10 for Rust. There is memory corruption for certain grow attempts with less than the current capacity.","status":"published","published":"2019-08-26T15:15:12.187Z","modified":"2026-10-20T10:50:44.434030071Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:44:11.361782Z"},{"id":"DEBIAN-CVE-2019-15554","description":"An issue was discovered in the smallvec crate before 0.6.10 for Rust. There is memory corruption for certain grow attempts with less than the current capacity.","status":"published","published":"2019-08-26T15:15:12.187Z","modified":"2026-09-21T07:02:45.316974838Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:45:31.867036Z"},{"id":"GHSA-69gw-hgj3-45m7","title":"Memory corruption in smallvec","description":"Attempting to call grow on a spilled SmallVec with a value less than the current capacity causes corruption of memory allocator data structures. An attacker that controls the value passed to grow may exploit this flaw to obtain memory contents or gain remote code execution.","status":"published","published":"2021-08-25T20:43:58Z","modified":"2023-11-08T04:01:14.344753Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-787"],"updated_at":"2026-11-02T15:46:39.618611Z"},{"id":"RUSTSEC-2019-0012","title":"Memory corruption in SmallVec::grow()","description":"Attempting to call `grow` on a spilled SmallVec with a value less than the current capacity causes corruption of memory allocator data structures.\n\nAn attacker that controls the value passed to `grow` may exploit this flaw to obtain memory contents or gain remote code execution.\n\nCredits to [@ehuss](https://github.com/ehuss) for discovering, reporting and fixing the bug.","status":"published","published":"2019-07-19T12:00:00Z","modified":"2026-07-17T16:00:03.225430317Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:53:39.492624Z"}]}}
