Vulnerability RUSTSEC-2026-0476
Summary
Buffer overflow with AES key wrap with padding in `cipher_update`
Details
CipherCtxRef::cipher_update, CipherCtxRef::cipher_update_vec and symm::Crypter::update require (or allocate) input.len() + block_size bytes of output. With the AES key-wrap-with-padding ciphers (EVP_aes_128_wrap_pad, EVP_aes_192_wrap_pad, EVP_aes_256_wrap_pad), OpenSSL pads the input to a multiple of 8 bytes and adds an 8-byte block, so when the input length is not a multiple of 8 it writes up to 7 bytes past the end of the caller's buffer or Vec. If an attacker can influence the plaintext length, this is heap corruption they can partly control.
Only users of the AES key-wrap-with-padding ciphers are affected. 0.10.79 sizes the output for these ciphers as the input length rounded up to a multiple of 8, plus 8.
Related Vulnerabilities
Other vulnerabilities affecting the same packages