{"id":"CVE-2023-28445","aliases":["EUVD-2023-0976","GHSA-c25x-cm9x-qqgx"],"status":"published","title":"Deno improperly handles resizable ArrayBuffer","description":"Deno is a runtime for JavaScript and TypeScript that uses V8 and is built in Rust. Resizable ArrayBuffers passed to asynchronous functions that are shrunk during the asynchronous operation could result in an out-of-bound read/write. It is unlikely that this has been exploited in the wild, as the only version affected is Deno 1.32.0. Deno Deploy users are not affected. The problem has been resolved by disabling resizable ArrayBuffers temporarily in Deno 1.32.1. Deno 1.32.2 will re-enable resizable ArrayBuffers with a proper fix. As a workaround, run with `--v8-flags=--no-harmony-rab-gsab` to disable resizable ArrayBuffers.","severity":{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00971,"percentile":0.62206,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-125","CWE-787"],"published":"2023-03-23T23:13:25Z","modified":"2026-10-28T02:30:33Z","fixes":[{"ecosystem":"crates.io","package":"Deno","fixed_in":["1.32.1"],"sources":["ghsa","osv"]},{"ecosystem":"crates.io","package":"serde_v8","fixed_in":["0.88.0"],"sources":["ghsa","osv"]},{"ecosystem":"crates.io","package":"deno_runtime","fixed_in":["0.103.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"Deno","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.32.0"},{"last_affected":"1.32.0"},{"fixed":"1.32.1"}]}],"versions":["1.32.0"]},{"source":"ghsa","ecosystem":"crates.io","package":"serde_v8","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.87.0"},{"last_affected":"0.87.0"},{"fixed":"0.88.0"}]}],"versions":["0.87.0"]},{"source":"ghsa","ecosystem":"crates.io","package":"deno_runtime","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.102.0"},{"last_affected":"0.102.0"},{"fixed":"0.103.0"}]}],"versions":["0.102.0"]},{"source":"osv","ecosystem":"crates.io","package":"Deno","ranges":[{"type":"SEMVER","events":[{"introduced":"1.32.0"},{"fixed":"1.32.1"}]}],"versions":["1.32.0"]},{"source":"osv","ecosystem":"crates.io","package":"serde_v8","ranges":[{"type":"SEMVER","events":[{"introduced":"0.87.0"},{"fixed":"0.88.0"}]}],"versions":["0.87.0"]},{"source":"osv","ecosystem":"crates.io","package":"deno_runtime","ranges":[{"type":"SEMVER","events":[{"introduced":"0.102.0"},{"fixed":"0.103.0"}]}],"versions":["0.102.0"]}],"products":[{"vendor":"deno","product":"deno"},{"vendor":"deno","product":"deno_runtime"},{"vendor":"deno","product":"serde_v8"},{"vendor":"denoland","product":"deno"}],"references":[{"url":"https://github.com/denoland/deno/security/advisories/GHSA-c25x-cm9x-qqgx","tags":["x_refsource_CONFIRM","x_transferred","Mitigation","Vendor Advisory","advisory","web"]},{"url":"https://github.com/denoland/deno/pull/18395","tags":["x_refsource_MISC","x_transferred","Patch","Vendor Advisory","fix","web"]},{"url":"https://github.com/denoland/deno/releases/tag/v1.32.1","tags":["x_refsource_MISC","x_transferred","Patch","Release Notes","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-28445","tags":["advisory"]},{"url":"https://github.com/denoland/deno/pull/18452","tags":["web"]},{"url":"https://github.com/advisories/GHSA-c25x-cm9x-qqgx"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/28xxx/CVE-2023-28445.json","tags":["advisory"]},{"url":"https://github.com/denoland/deno","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2023-28445","title":"Deno improperly handles resizable ArrayBuffer","description":"Deno is a runtime for JavaScript and TypeScript that uses V8 and is built in Rust. Resizable ArrayBuffers passed to asynchronous functions that are shrunk during the asynchronous operation could result in an out-of-bound read/write. It is unlikely that this has been exploited in the wild, as the only version affected is Deno 1.32.0. Deno Deploy users are not affected. The problem has been resolved by disabling resizable ArrayBuffers temporarily in Deno 1.32.1. Deno 1.32.2 will re-enable resizable ArrayBuffers with a proper fix. As a workaround, run with `--v8-flags=--no-harmony-rab-gsab` to disable resizable ArrayBuffers.","status":"published","published":"2023-03-23T23:23:27.931Z","modified":"2025-02-20T19:17:12.688Z","cvss":[{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"cna"}],"cwes":["CWE-125","CWE-787"],"updated_at":"2026-11-02T14:35:32.376766Z"}],"euvd":[{"id":"EUVD-2023-0976","description":"Deno is a runtime for JavaScript and TypeScript that uses V8 and is built in Rust. Resizable ArrayBuffers passed to asynchronous functions that are shrunk during the asynchronous operation could result in an out-of-bound read/write. It is unlikely that this has been exploited in the wild, as the only version affected is Deno 1.32.0. Deno Deploy users are not affected. The problem has been resolved by disabling resizable ArrayBuffers temporarily in Deno 1.32.1. Deno 1.32.2 will re-enable resizable ArrayBuffers with a proper fix. As a workaround, run with `--v8-flags=--no-harmony-rab-gsab` to disable resizable ArrayBuffers.","status":"published","published":"2023-03-23T23:23:27Z","modified":"2025-02-20T19:17:12Z","cvss":[{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T20:53:26.353093Z"}],"ghsa":[{"id":"GHSA-c25x-cm9x-qqgx","title":"Deno improperly handles resizable ArrayBuffer","description":"### Impact\n\n[Resizable ArrayBuffers](https://github.com/tc39/proposal-resizablearraybuffer) passed to asynchronous native functions that are shrunk during the asynchronous operation could result in an out-of-bound read/write.\n\nIt is unlikely that this has been exploited in the wild, as the only version affected is Deno 1.32.0.\n\nDeno Deploy users are not affected.\n\n### Patches\n\nThe problem has been resolved by disabling resizable ArrayBuffers temporarily in Deno 1.32.1. A future version of Deno will re-enable resizable ArrayBuffers with a proper fix.\n\n### Workarounds\n\nUpgrade to Deno 1.32.1, or run with `--v8-flags=--no-harmony-rab-gsab` to disable resizable ArrayBuffers.","status":"published","published":"2023-03-23T23:13:25Z","modified":"2023-05-04T21:09:39Z","cvss":[{"version":"3.1","score":9.9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-125","CWE-787"],"updated_at":"2026-11-02T14:36:52.310293Z"}],"nvd":[{"id":"CVE-2023-28445","description":"Deno is a runtime for JavaScript and TypeScript that uses V8 and is built in Rust. Resizable ArrayBuffers passed to asynchronous functions that are shrunk during the asynchronous operation could result in an out-of-bound read/write. It is unlikely that this has been exploited in the wild, as the only version affected is Deno 1.32.0. Deno Deploy users are not affected. The problem has been resolved by disabling resizable ArrayBuffers temporarily in Deno 1.32.1. Deno 1.32.2 will re-enable resizable ArrayBuffers with a proper fix. As a workaround, run with `--v8-flags=--no-harmony-rab-gsab` to disable resizable ArrayBuffers.","status":"published","published":"2023-03-24T00:15:15.653Z","modified":"2026-06-17T05:47:45.28Z","cvss":[{"version":"3.1","score":9.9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"secondary"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"}],"cwes":["CWE-125","CWE-787"],"updated_at":"2026-11-02T14:07:50.908252Z"}],"osv":[{"id":"CVE-2023-28445","title":"Deno improperly handles resizable ArrayBuffer","description":"Deno is a runtime for JavaScript and TypeScript that uses V8 and is built in Rust. Resizable ArrayBuffers passed to asynchronous functions that are shrunk during the asynchronous operation could result in an out-of-bound read/write. It is unlikely that this has been exploited in the wild, as the only version affected is Deno 1.32.0. Deno Deploy users are not affected. The problem has been resolved by disabling resizable ArrayBuffers temporarily in Deno 1.32.1. Deno 1.32.2 will re-enable resizable ArrayBuffers with a proper fix. As a workaround, run with `--v8-flags=--no-harmony-rab-gsab` to disable resizable ArrayBuffers.","status":"published","published":"2023-03-23T23:23:27.931Z","modified":"2026-10-28T02:30:33.256516651Z","cvss":[{"version":"3.1","score":9.9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-125","CWE-787"],"updated_at":"2026-11-02T15:44:31.468318Z"},{"id":"GHSA-c25x-cm9x-qqgx","title":"Deno improperly handles resizable ArrayBuffer","description":"### Impact\n\n[Resizable ArrayBuffers](https://github.com/tc39/proposal-resizablearraybuffer) passed to asynchronous native functions that are shrunk during the asynchronous operation could result in an out-of-bound read/write.\n\nIt is unlikely that this has been exploited in the wild, as the only version affected is Deno 1.32.0.\n\nDeno Deploy users are not affected.\n\n### Patches\n\nThe problem has been resolved by disabling resizable ArrayBuffers temporarily in Deno 1.32.1. A future version of Deno will re-enable resizable ArrayBuffers with a proper fix.\n\n### Workarounds\n\nUpgrade to Deno 1.32.1, or run with `--v8-flags=--no-harmony-rab-gsab` to disable resizable ArrayBuffers.","status":"published","published":"2023-03-23T23:13:25Z","modified":"2023-11-08T04:12:11.261571Z","cvss":[{"version":"3.1","score":9.9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-125","CWE-787"],"updated_at":"2026-11-02T15:46:44.225359Z"}]}}
