| 
					
				 | 
			
			
				@@ -0,0 +1,39 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+From 02ac9c9420275868472f33b01def01218742b8bb Mon Sep 17 00:00:00 2001 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+From: Tomas Mraz <[email protected]> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+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 <[email protected]> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Reviewed-by: Tom Cosgrove <[email protected]> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(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: 
			 |