Files
advisory-db/crates/crypto2/RUSTSEC-2021-0121.md
2021-10-18 10:22:07 -06:00

792 B

[advisory]
id = "RUSTSEC-2021-0121"
package = "crypto2"
date = "2021-10-08"
url = "https://github.com/shadowsocks/crypto2/issues/27"
informational = "unsound"
keywords = ["crypto", "alignment", "unsound"]

[affected.functions]
"crypto2::streamcipher::Chacha20::encrypt_slice" = ["*"]
"crypto2::streamcipher::Chacha20::decrypt_slice" = ["*"]
"crypto2::streamcipher::xor_si512_inplace" = ["*"]

[versions]
patched = []

Non-aligned u32 read in Chacha20 encryption and decryption

The implementation does not enforce alignment requirements on input slices while incorrectly assuming 4-byte alignment through an unsafe call to std::slice::from_raw_parts_mut, which breaks the contract and introduces undefined behavior.

This affects Chacha20 encryption and decryption in crypto2.