From: Tobias Brunner Date: Tue, 13 Sep 2022 13:16:47 +0000 (+0200) Subject: aesni: Fix out-of-bound read when loading 192-bit AES keys X-Git-Tag: 5.9.8dr4~11^2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7217ff5fc567800ec3f90b4244b66d7949856ee8;p=thirdparty%2Fstrongswan.git aesni: Fix out-of-bound read when loading 192-bit AES keys --- diff --git a/src/libstrongswan/plugins/aesni/aesni_key.c b/src/libstrongswan/plugins/aesni/aesni_key.c index a9476124a6..c055235907 100644 --- a/src/libstrongswan/plugins/aesni/aesni_key.c +++ b/src/libstrongswan/plugins/aesni/aesni_key.c @@ -142,9 +142,11 @@ static __m128i _mm_shuffle_i01(__m128i a, __m128i b) static void expand192(__m128i *key, __m128i *schedule) { __m128i t1, t2, t3; + u_char buf[16] = {}; schedule[0] = t1 = _mm_loadu_si128(key); - t2 = t3 = _mm_loadu_si128(key + 1); + memcpy(buf, key + 1, 8); + t2 = t3 = _mm_loadu_si128((__m128i*)buf); t2 = assist192(_mm_aeskeygenassist_si128(t2, 0x1), t2, &t1); schedule[1] = _mm_shuffle_i00(t3, t1);