{"id":"CVE-2018-20998","aliases":["EUVD-2019-0020","GHSA-69fv-gw6g-8ccg","PYSEC-2019-144","RUSTSEC-2018-0011"],"status":"published","title":"Potential memory corruption in arrayfire","description":"An issue was discovered in the arrayfire crate before 3.6.0 for Rust. Addition of the repr() attribute to an enum is mishandled, leading to memory corruption.","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-08","score":0.01691,"percentile":0.77226,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-119"],"published":"2018-12-18T12:00:00Z","modified":"2026-11-09T10:45:03Z","fixes":[{"ecosystem":"crates.io","package":"arrayfire","fixed_in":["3.6.0"],"sources":["ghsa","osv"]},{"ecosystem":"PyPI","package":"arrayfire","fixed_in":["3.6.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"arrayfire","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.0"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"arrayfire","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.0"}]}]},{"source":"osv","ecosystem":"crates.io","package":"arrayfire","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.6.0"}]}]},{"source":"osv","ecosystem":"PyPI","package":"arrayfire","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.0"}]}],"versions":["3.0.20150914","3.1.20151111","3.2.20151211","3.2.20151214","3.2.20151224","3.2.20151224.post1","3.3.20160320","3.3.20160328","3.3.20160427","3.3.20160427.post1","3.3.20160510","3.3.20160516","3.3.20160624","3.3.20160624.post1","3.4.20160925","3.4.20161126","3.4.20170222","3.5.20170718","3.5.20170721","3.5.20170817"]},{"source":"osv","ecosystem":"crates.io","package":"arrayfire","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"3.6.0"}]}]}],"products":[{"vendor":"arrayfire","product":"arrayfire"}],"references":[{"url":"https://rustsec.org/advisories/RUSTSEC-2018-0011.html","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2018-20998","tags":["advisory"]},{"url":"https://github.com/arrayfire/arrayfire-rust/pull/177","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/arrayfire/PYSEC-2019-144.yaml","tags":["web"]},{"url":"https://github.com/arrayfire/arrayfire-rust/commit/a5256f3e5e23b83eaad69699e0b04653aba04fb8","tags":["web"]},{"url":"https://github.com/advisories/GHSA-69fv-gw6g-8ccg","tags":["advisory"]},{"url":"https://github.com/arrayfire/arrayfire-rust","tags":["package"]},{"url":"https://crates.io/crates/arrayfire","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2018-20998","description":"An issue was discovered in the arrayfire crate before 3.6.0 for Rust. Addition of the repr() attribute to an enum is mishandled, leading to memory corruption.","status":"published","published":"2019-08-26T17:11:29Z","modified":"2024-08-05T12:19:27.345Z","updated_at":"2026-11-02T14:35:00.237825Z"}],"euvd":[{"id":"EUVD-2019-0020","description":"An issue was discovered in the arrayfire crate before 3.6.0 for Rust. Addition of the repr() attribute to an enum is mishandled, leading to memory corruption.","status":"published","published":"2019-08-26T17:11:29Z","modified":"2024-08-05T12:19:27Z","updated_at":"2026-11-03T02:39:28.311281Z"}],"ghsa":[{"id":"GHSA-69fv-gw6g-8ccg","title":"Potential memory corruption in arrayfire","description":"The attribute repr() added to enums to be compatible with C-FFI caused memory corruption on MSVC toolchain.\n\narrayfire crates \u003c= version 3.5.0 do not have this issue when used with Rust versions 1.27 or earlier. The issue only started to appear since Rust version 1.28.\n\nThe issue seems to be interlinked with which version of Rust is being used.\n\nThe issue was fixed in crate 3.6.0.","status":"published","published":"2021-08-25T20:43:26Z","modified":"2024-09-12T20:47:22Z","cvss":[{"version":"4.0","score":9.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"critical"},{"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-119"],"updated_at":"2026-11-02T14:38:02.014847Z"}],"nvd":[{"id":"CVE-2018-20998","description":"An issue was discovered in the arrayfire crate before 3.6.0 for Rust. Addition of the repr() attribute to an enum is mishandled, leading to memory corruption.","status":"published","published":"2019-08-26T18:15:11.717Z","modified":"2026-06-17T01:53:54.587Z","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-119"],"updated_at":"2026-11-02T14:04:59.278647Z"}],"osv":[{"id":"CVE-2018-20998","description":"An issue was discovered in the arrayfire crate before 3.6.0 for Rust. Addition of the repr() attribute to an enum is mishandled, leading to memory corruption.","status":"published","published":"2019-08-26T18:15:11.717Z","modified":"2026-11-09T10:45:03.338528221Z","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-09T10:53:57.550641Z"},{"id":"GHSA-69fv-gw6g-8ccg","title":"Potential memory corruption in arrayfire","description":"The attribute repr() added to enums to be compatible with C-FFI caused memory corruption on MSVC toolchain.\n\narrayfire crates \u003c= version 3.5.0 do not have this issue when used with Rust versions 1.27 or earlier. The issue only started to appear since Rust version 1.28.\n\nThe issue seems to be interlinked with which version of Rust is being used.\n\nThe issue was fixed in crate 3.6.0.","status":"published","published":"2021-08-25T20:43:26Z","modified":"2024-09-12T20:52:04.541612Z","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"},{"version":"4.0","score":9.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"critical"}],"cwes":["CWE-119"],"updated_at":"2026-11-02T15:46:39.618611Z"},{"id":"RUSTSEC-2018-0011","title":"Enum repr causing potential memory corruption","description":"The attribute repr() added to enums to be compatible with C-FFI caused\nmemory corruption on MSVC toolchain.\n\narrayfire crates \u003c= version 3.5.0 do not have this issue when used with\nRust versions 1.27 or earlier. The issue only started to appear since\nRust version 1.28.\n\nThe issue seems to be interlinked with which version of Rust is being used.\n\nThe issue was fixed in crate 3.6.0.","status":"published","published":"2018-12-18T12:00:00Z","modified":"2026-09-25T14:45:02.994347923Z","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"},{"id":"PYSEC-2019-144","description":"An issue was discovered in the arrayfire crate before 3.6.0 for Rust. Addition of the repr() attribute to an enum is mishandled, leading to memory corruption.","status":"withdrawn","published":"2019-08-26T18:15:00Z","modified":"2026-06-10T17:00:33.010544835Z","updated_at":"2026-11-02T15:52:52.192131Z"}]}}
