CVE-2023-53156
transpose: Buffer overflow due to integer overflow
The transpose crate before 0.2.3 for Rust allows an integer overflow via input_width and input_height arguments.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- Low
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
4.5
The transpose crate before 0.2.3 for Rust allows an integer overflow via input_width and input_height arguments.
- Record
CVE-2023-53156- CVSS 3.1
- 4.5 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L - Weakness
- CWE-190
- Updated
- 2026-11-02
EUVDEUVD-2023-59767
4.5
The transpose crate before 0.2.3 for Rust allows an integer overflow via input_width and input_height arguments.
- Record
EUVD-2023-59767- CVSS 3.1
- 4.5 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-5gmm-6m36-r7jh
4.5
transpose: Buffer overflow due to integer overflow
Given the function transpose::transpose:
fn transpose<T: Copy>(input: &[T], output: &mut [T], input_width: usize, input_height: usize)
The 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().
As 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.
Exploiting 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.
- Record
GHSA-5gmm-6m36-r7jh- CVSS 3.1
- 4.5 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L - Weakness
- CWE-120, CWE-190
- Updated
- 2026-11-02
NVD
4.5
The transpose crate before 0.2.3 for Rust allows an integer overflow via input_width and input_height arguments.
- Record
CVE-2023-53156- CVSS 3.1
- 4.5 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L - CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Weakness
- CWE-190
- Updated
- 2026-11-02
OSV
4.5
The transpose crate before 0.2.3 for Rust allows an integer overflow via input_width and input_height arguments.
- Record
CVE-2023-53156- CVSS 3.1
- 4.5 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L - Weakness
- CWE-190
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2023-53156
5.3
The transpose crate before 0.2.3 for Rust allows an integer overflow via input_width and input_height arguments.
- Record
DEBIAN-CVE-2023-53156- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
Show 4 moreShow less
OSVGHSA-5gmm-6m36-r7jh
4.5
transpose: Buffer overflow due to integer overflow
Given the function transpose::transpose:
fn transpose<T: Copy>(input: &[T], output: &mut [T], input_width: usize, input_height: usize)
The 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().
As 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.
Exploiting 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.
- Record
GHSA-5gmm-6m36-r7jh- CVSS 3.1
- 4.5 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L - Weakness
- CWE-120, CWE-190
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2023-53156
4.5
The transpose crate before 0.2.3 for Rust allows an integer overflow via input_width and input_height arguments.
- Record
UBUNTU-CVE-2023-53156- CVSS 3.1
- 4.5 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L - CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
OSVopenSUSE-SU-2025:15433-1 No score
framework-inputmodule-control-0.2.0-3.1 on GA media
These are all security issues fixed in the framework-inputmodule-control-0.2.0-3.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2025:15433-1- Updated
- 2026-11-02
OSVRUSTSEC-2023-0080 No score
Buffer overflow due to integer overflow in `transpose`
Given the function transpose::transpose:
fn transpose<T: Copy>(input: &[T], output: &mut [T], input_width: usize, input_height: usize)
The 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().
As 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.
Exploiting 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.
- Record
RUSTSEC-2023-0080- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
transposecrates.io |
0.1.0 up to 0.2.3 | 0.2.3 |
rust-transposeDebian:13 |
All versions, plus listed versions 0.2.2-10.2.3-1 |
None known |
rust-transposeDebian:14 |
before 0.2.3-1, plus listed versions 0.2.2-1 |
0.2.3-1 |
transposecrates.io |
0.0.0-0 up to 0.2.3 | 0.2.3 |
rust-transposeUbuntu:25.10 |
All versions, plus listed versions 0.2.2-1 |
None known |
rust-transposeUbuntu:26.10 |
All versions, plus listed versions 0.2.3-1 |
None known |
rust-transposeUbuntu:26.04:LTS |
All versions, plus listed versions 0.2.2-10.2.3-1 |
None known |
framework-inputmodule-controlopenSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 0.2.0-3.1 | 0.2.0-3.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2023-53156 is a medium vulnerability (CVSS 4.5) in Ejmahler Transpose, published December 18, 2023. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.34%, the 28th percentile. Fixed in transpose 0.2.3.
References
rustsec.org/advisories/RUSTSEC-2023-0080.html
github.com/ejmahler/transpose/issues/11
github.com/advisories/GHSA-5gmm-6m36-r7jh
crates.io/crates/transpose
github.com/ejmahler/transpose/commit/c4bcd39fabca9a31a401d0cc42d4090869b5a37a
nvd.nist.gov/vuln/detail/CVE-2023-53156