{"id":"CVE-2023-53156","aliases":["DEBIAN-CVE-2023-53156","EUVD-2023-59767","GHSA-5gmm-6m36-r7jh","RUSTSEC-2023-0080","UBUNTU-CVE-2023-53156","openSUSE-SU-2025:15433-1"],"status":"published","title":"transpose: Buffer overflow due to integer overflow","description":"The transpose crate before 0.2.3 for Rust allows an integer overflow via input_width and input_height arguments.","severity":{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00345,"percentile":0.28361,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-120","CWE-190"],"published":"2023-12-18T12:00:00Z","modified":"2026-10-28T02:30:56Z","fixes":[{"ecosystem":"crates.io","package":"transpose","fixed_in":["0.2.3"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:14","package":"rust-transpose","fixed_in":["0.2.3-1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"transpose","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.1.0"},{"fixed":"0.2.3"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"rust-transpose","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.2.2-1","0.2.3-1"]},{"source":"osv","ecosystem":"Debian:14","package":"rust-transpose","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.2.3-1"}]}],"versions":["0.2.2-1"]},{"source":"osv","ecosystem":"crates.io","package":"transpose","ranges":[{"type":"SEMVER","events":[{"introduced":"0.1.0"},{"fixed":"0.2.3"}]}]},{"source":"osv","ecosystem":"crates.io","package":"transpose","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.2.3"}]}]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"rust-transpose","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.2.2-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"rust-transpose","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.2.3-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"rust-transpose","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.2.2-1","0.2.3-1"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"framework-inputmodule-control","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.2.0-3.1"}]}],"bundled":2}],"products":[{"vendor":"ejmahler","product":"transpose"}],"references":[{"url":"https://rustsec.org/advisories/RUSTSEC-2023-0080.html","tags":["Third Party Advisory","advisory","web","report"]},{"url":"https://github.com/ejmahler/transpose/issues/11","tags":["Issue Tracking","report","web"]},{"url":"https://github.com/advisories/GHSA-5gmm-6m36-r7jh","tags":["Third Party Advisory","advisory","report"]},{"url":"https://crates.io/crates/transpose","tags":["Product","web","package","report"]},{"url":"https://github.com/ejmahler/transpose/commit/c4bcd39fabca9a31a401d0cc42d4090869b5a37a","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-53156","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/53xxx/CVE-2023-53156.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2023-53156","tags":["advisory"]},{"url":"https://github.com/ejmahler/transpose","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2023-53156","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2023-53156","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2023-53156","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2024-58266","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2023-53156","description":"The transpose crate before 0.2.3 for Rust allows an integer overflow via input_width and input_height arguments.","status":"published","published":"2025-07-27T00:00:00Z","modified":"2025-07-28T15:15:28.514Z","cvss":[{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L","level":"medium","assessor":"cna"}],"cwes":["CWE-190"],"updated_at":"2026-11-02T14:35:31.264455Z"}],"euvd":[{"id":"EUVD-2023-59767","description":"The transpose crate before 0.2.3 for Rust allows an integer overflow via input_width and input_height arguments.","status":"published","published":"2025-07-27T00:00:00Z","modified":"2025-07-28T15:15:28Z","cvss":[{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L","level":"medium"}],"updated_at":"2026-11-02T20:32:03.907132Z"}],"ghsa":[{"id":"GHSA-5gmm-6m36-r7jh","title":"transpose: Buffer overflow due to integer overflow","description":"Given the function `transpose::transpose`:\n```rust\nfn transpose\u003cT: Copy\u003e(input: \u0026[T], output: \u0026mut [T], input_width: usize, input_height: usize)\n```\n\nThe safety check `input_width * input_height == output.len()` can fail due to `input_width * input_height` overflowing in such a way that it equals `output.len()`.\nAs a result of failing the safety check, memory past the end of `output` is written to. This only occurs in release mode since `*` panics on overflow in debug mode.\n\nExploiting this issue requires the caller to pass `input_width` and `input_height` arguments such that multiplying them overflows, and the overflown result equals the lengths of input and output slices.","status":"published","published":"2024-04-05T15:41:34Z","modified":"2025-07-28T15:54:19Z","cvss":[{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L","level":"medium"}],"cwes":["CWE-120","CWE-190"],"updated_at":"2026-11-02T14:38:51.864708Z"}],"nvd":[{"id":"CVE-2023-53156","description":"The transpose crate before 0.2.3 for Rust allows an integer overflow via input_width and input_height arguments.","status":"published","published":"2025-07-27T21:15:25.687Z","modified":"2026-06-17T06:44:24.36Z","cvss":[{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L","level":"medium","assessor":"secondary"},{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-190"],"updated_at":"2026-11-02T14:09:21.774456Z"}],"osv":[{"id":"CVE-2023-53156","description":"The transpose crate before 0.2.3 for Rust allows an integer overflow via input_width and input_height arguments.","status":"published","published":"2025-07-27T00:00:00Z","modified":"2026-10-28T02:30:56.034758656Z","cvss":[{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L","level":"medium"}],"cwes":["CWE-190"],"updated_at":"2026-11-02T15:44:35.70651Z"},{"id":"DEBIAN-CVE-2023-53156","description":"The transpose crate before 0.2.3 for Rust allows an integer overflow via input_width and input_height arguments.","status":"published","published":"2025-07-27T21:15:25.687Z","modified":"2026-10-26T18:03:08.889970095Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:45:40.889463Z"},{"id":"GHSA-5gmm-6m36-r7jh","title":"transpose: Buffer overflow due to integer overflow","description":"Given the function `transpose::transpose`:\n```rust\nfn transpose\u003cT: Copy\u003e(input: \u0026[T], output: \u0026mut [T], input_width: usize, input_height: usize)\n```\n\nThe safety check `input_width * input_height == output.len()` can fail due to `input_width * input_height` overflowing in such a way that it equals `output.len()`.\nAs a result of failing the safety check, memory past the end of `output` is written to. This only occurs in release mode since `*` panics on overflow in debug mode.\n\nExploiting this issue requires the caller to pass `input_width` and `input_height` arguments such that multiplying them overflows, and the overflown result equals the lengths of input and output slices.","status":"published","published":"2024-04-05T15:41:34Z","modified":"2025-07-28T16:42:04.676549Z","cvss":[{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L","level":"medium"}],"cwes":["CWE-120","CWE-190"],"updated_at":"2026-11-02T15:46:38.213481Z"},{"id":"UBUNTU-CVE-2023-53156","description":"The transpose crate before 0.2.3 for Rust allows an integer overflow via input_width and input_height arguments.","status":"published","published":"2025-07-27T21:15:00Z","modified":"2026-10-17T12:56:26.487817727Z","cvss":[{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L","level":"medium"},{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T16:54:27.083705Z"},{"id":"openSUSE-SU-2025:15433-1","title":"framework-inputmodule-control-0.2.0-3.1 on GA media","description":"These are all security issues fixed in the framework-inputmodule-control-0.2.0-3.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2025-08-12T00:00:00Z","modified":"2026-03-23T04:53:46.620849Z","updated_at":"2026-11-02T16:58:37.810934Z"},{"id":"RUSTSEC-2023-0080","title":"Buffer overflow due to integer overflow in `transpose`","description":"Given the function `transpose::transpose`:\n```rust\nfn transpose\u003cT: Copy\u003e(input: \u0026[T], output: \u0026mut [T], input_width: usize, input_height: usize)\n```\n\nThe safety check `input_width * input_height == output.len()` can fail due to `input_width * input_height` overflowing in such a way that it equals `output.len()`.\nAs a result of failing the safety check, memory past the end of `output` is written to. This only occurs in release mode since `*` panics on overflow in debug mode.\n\nExploiting this issue requires the caller to pass `input_width` and `input_height` arguments such that multiplying them overflows, and the overflown result equals the lengths of input and output slices.","status":"published","published":"2023-12-18T12:00:00Z","modified":"2025-10-28T06:02:18Z","updated_at":"2026-11-02T15:53:39.971022Z"}]}}
