patches for DPDK stable branches
 help / color / mirror / Atom feed
* [PATCH] crypto/qat: fix stack buffer overflow in SGL loop
@ 2023-04-14 12:31 Ciara Power
  2023-04-14 13:22 ` Ji, Kai
  2023-04-14 13:28 ` Dooley, Brian
  0 siblings, 2 replies; 4+ messages in thread
From: Ciara Power @ 2023-04-14 12:31 UTC (permalink / raw)
  To: Kai Ji; +Cc: dev, Ciara Power, stable

The cvec pointer was incremented incorrectly in the case where the
length of remaining_off equals cvec len, and there is no next cvec.
This led to cvec->iova being invalid memory to access.

Instead, only increment the cvec pointer when we know there is a next
cvec to point to, by checking the i value, which represents the number
of cvecs available.
If i is 0, then no need to increment as the current cvec is the last one.

Fixes: a815a04cea05 ("crypto/qat: support symmetric build op request")
Cc: kai.ji@intel.com
Cc: stable@dpdk.org

Signed-off-by: Ciara Power <ciara.power@intel.com>
---
 drivers/crypto/qat/dev/qat_crypto_pmd_gens.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h b/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h
index 524c291340..092265631b 100644
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h
@@ -682,7 +682,8 @@ enqueue_one_chain_job_gen1(struct qat_sym_session *ctx,
 		while (remaining_off >= cvec->len && i >= 1) {
 			i--;
 			remaining_off -= cvec->len;
-			cvec++;
+			if (i)
+				cvec++;
 		}
 
 		auth_iova_end = cvec->iova + remaining_off;
-- 
2.25.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH] crypto/qat: fix stack buffer overflow in SGL loop
  2023-04-14 12:31 [PATCH] crypto/qat: fix stack buffer overflow in SGL loop Ciara Power
@ 2023-04-14 13:22 ` Ji, Kai
  2023-05-03  7:30   ` Akhil Goyal
  2023-04-14 13:28 ` Dooley, Brian
  1 sibling, 1 reply; 4+ messages in thread
From: Ji, Kai @ 2023-04-14 13:22 UTC (permalink / raw)
  To: Power, Ciara; +Cc: dev, stable

Acked-by: Kai Ji <kai.ji@intel.com>

> -----Original Message-----
> From: Power, Ciara <ciara.power@intel.com>
> Sent: Friday, April 14, 2023 1:32 PM
> To: Ji, Kai <kai.ji@intel.com>
> Cc: dev@dpdk.org; Power, Ciara <ciara.power@intel.com>; stable@dpdk.org
> Subject: [PATCH] crypto/qat: fix stack buffer overflow in SGL loop
> 
> The cvec pointer was incremented incorrectly in the case where the length
> of remaining_off equals cvec len, and there is no next cvec.
> This led to cvec->iova being invalid memory to access.
> 
> Instead, only increment the cvec pointer when we know there is a next cvec
> to point to, by checking the i value, which represents the number of cvecs
> available.
> If i is 0, then no need to increment as the current cvec is the last one.
> 
> Fixes: a815a04cea05 ("crypto/qat: support symmetric build op request")
> Cc: kai.ji@intel.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Ciara Power <ciara.power@intel.com>
> ---
>  drivers/crypto/qat/dev/qat_crypto_pmd_gens.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h
> b/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h
> index 524c291340..092265631b 100644
> --- a/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h
> +++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h
> @@ -682,7 +682,8 @@ enqueue_one_chain_job_gen1(struct qat_sym_session *ctx,
>  		while (remaining_off >= cvec->len && i >= 1) {
>  			i--;
>  			remaining_off -= cvec->len;
> -			cvec++;
> +			if (i)
> +				cvec++;
>  		}
> 
>  		auth_iova_end = cvec->iova + remaining_off;
> --
> 2.25.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH] crypto/qat: fix stack buffer overflow in SGL loop
  2023-04-14 12:31 [PATCH] crypto/qat: fix stack buffer overflow in SGL loop Ciara Power
  2023-04-14 13:22 ` Ji, Kai
@ 2023-04-14 13:28 ` Dooley, Brian
  1 sibling, 0 replies; 4+ messages in thread
From: Dooley, Brian @ 2023-04-14 13:28 UTC (permalink / raw)
  To: Power, Ciara, Ji, Kai; +Cc: dev, Power, Ciara, stable

Hi Ciara,

> -----Original Message-----
> From: Ciara Power <ciara.power@intel.com>
> Sent: Friday 14 April 2023 13:32
> To: Ji, Kai <kai.ji@intel.com>
> Cc: dev@dpdk.org; Power, Ciara <ciara.power@intel.com>; stable@dpdk.org
> Subject: [PATCH] crypto/qat: fix stack buffer overflow in SGL loop
>
> The cvec pointer was incremented incorrectly in the case where the length of
> remaining_off equals cvec len, and there is no next cvec.
> This led to cvec->iova being invalid memory to access.
>
> Instead, only increment the cvec pointer when we know there is a next cvec
> to point to, by checking the i value, which represents the number of cvecs
> available.
> If i is 0, then no need to increment as the current cvec is the last one.
>
> Fixes: a815a04cea05 ("crypto/qat: support symmetric build op request")
> Cc: kai.ji@intel.com
> Cc: stable@dpdk.org
>
> Signed-off-by: Ciara Power <ciara.power@intel.com>
> ---
>  drivers/crypto/qat/dev/qat_crypto_pmd_gens.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h
> b/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h
> index 524c291340..092265631b 100644
> --- a/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h
> +++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h
> @@ -682,7 +682,8 @@ enqueue_one_chain_job_gen1(struct
> qat_sym_session *ctx,
>               while (remaining_off >= cvec->len && i >= 1) {
>                       i--;
>                       remaining_off -= cvec->len;
> -                     cvec++;
> +                     if (i)
> +                             cvec++;
>               }
>
>               auth_iova_end = cvec->iova + remaining_off;
> --
> 2.25.1

Acked-by: Brian Dooley <brian.dooley@intel.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH] crypto/qat: fix stack buffer overflow in SGL loop
  2023-04-14 13:22 ` Ji, Kai
@ 2023-05-03  7:30   ` Akhil Goyal
  0 siblings, 0 replies; 4+ messages in thread
From: Akhil Goyal @ 2023-05-03  7:30 UTC (permalink / raw)
  To: Ji, Kai, Power, Ciara; +Cc: dev, stable

> Acked-by: Kai Ji <kai.ji@intel.com>
Applied to dpdk-next-crypto
Thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-05-03  7:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-14 12:31 [PATCH] crypto/qat: fix stack buffer overflow in SGL loop Ciara Power
2023-04-14 13:22 ` Ji, Kai
2023-05-03  7:30   ` Akhil Goyal
2023-04-14 13:28 ` Dooley, Brian

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).