openssl: fix low-severity CVE-2023-1255
[openwrt/staging/dedeckeh.git] / package / libs / openssl / patches / 220-aesv8-armx.pl-Avoid-buffer-overrread-in-AES-XTS-decr.patch
diff --git a/package/libs/openssl/patches/220-aesv8-armx.pl-Avoid-buffer-overrread-in-AES-XTS-decr.patch b/package/libs/openssl/patches/220-aesv8-armx.pl-Avoid-buffer-overrread-in-AES-XTS-decr.patch
new file mode 100644 (file)
index 0000000..d6a45ae
--- /dev/null
@@ -0,0 +1,39 @@
+From 02ac9c9420275868472f33b01def01218742b8bb Mon Sep 17 00:00:00 2001
+From: Tomas Mraz <tomas@openssl.org>
+Date: Mon, 17 Apr 2023 16:51:20 +0200
+Subject: [PATCH] aesv8-armx.pl: Avoid buffer overrread in AES-XTS decryption
+
+Original author: Nevine Ebeid (Amazon)
+Fixes: CVE-2023-1255
+
+The buffer overread happens on decrypts of 4 mod 5 sizes.
+Unless the memory just after the buffer is unmapped this is harmless.
+
+Reviewed-by: Paul Dale <pauli@openssl.org>
+Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
+(Merged from https://github.com/openssl/openssl/pull/20759)
+
+(cherry picked from commit 72dfe46550ee1f1bbfacd49f071419365bc23304)
+
+diff --git a/crypto/aes/asm/aesv8-armx.pl b/crypto/aes/asm/aesv8-armx.pl
+index 6a7bf05d1b..bd583e2c89 100755
+--- a/crypto/aes/asm/aesv8-armx.pl
++++ b/crypto/aes/asm/aesv8-armx.pl
+@@ -3353,7 +3353,7 @@ $code.=<<___     if ($flavour =~ /64/);
+ .align        4
+ .Lxts_dec_tail4x:
+       add     $inp,$inp,#16
+-      vld1.32 {$dat0},[$inp],#16
++      tst     $tailcnt,#0xf
+       veor    $tmp1,$dat1,$tmp0
+       vst1.8  {$tmp1},[$out],#16
+       veor    $tmp2,$dat2,$tmp2
+@@ -3362,6 +3362,8 @@ $code.=<<___     if ($flavour =~ /64/);
+       veor    $tmp4,$dat4,$tmp4
+       vst1.8  {$tmp3-$tmp4},[$out],#32
++      b.eq    .Lxts_dec_abort
++      vld1.32 {$dat0},[$inp],#16
+       b       .Lxts_done
+ .align        4
+ .Lxts_outer_dec_tail: