Executive brief
rust-openssl is a library that allows Rust applications to use OpenSSL for secure communications and data encryption. A flaw in its AES key wrapping component could allow an attacker to cause a memory error by providing specifically sized data buffers. This could lead to application crashes or potentially allow unauthorized access to sensitive information.
Technical details
An out-of-bounds write vulnerability exists in the aes::unwrap_key() function of rust-openssl due to an inverted bounds check assertion. The function incorrectly validates the output buffer size using 'out.len() + 8 <= in_.len()' instead of ensuring the buffer is large enough ('out.len() >= in_.len() - 8'). Consequently, the function rejects sufficiently large buffers and accepts those that are too small, leading to a memory write past the end of the buffer. This can be triggered via network-reachable vectors if an application allows attacker-controlled buffer sizes. The issue is fixed in version 0.10.78.
Affected products
- rust-openssl project rust-openssl >= 0.10.24, < 0.10.78
Timeline
- 2026-04-19: advisory: GitHub security advisory published
- 2026-04-24: disclosed: CVE published to NVD