2019-08-12 10:50:53

by Alessio Balsini

[permalink] [raw]
Subject: [PATCH 3.18.y] IB/mlx5: Fix leaking stack memory to userspace

From: Jason Gunthorpe <[email protected]>

mlx5_ib_create_qp_resp was never initialized and only the first 4 bytes
were written.

Fixes: 41d902cb7c32 ("RDMA/mlx5: Fix definition of mlx5_ib_create_qp_resp")
Cc: <[email protected]>
Acked-by: Leon Romanovsky <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
Signed-off-by: Alessio Balsini <[email protected]>
---
drivers/infiniband/hw/mlx5/qp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c
index 5edb09e674a6..82c4e29c1213 100644
--- a/drivers/infiniband/hw/mlx5/qp.c
+++ b/drivers/infiniband/hw/mlx5/qp.c
@@ -811,7 +811,7 @@ static int create_qp_common(struct mlx5_ib_dev *dev, struct ib_pd *pd,
struct ib_udata *udata, struct mlx5_ib_qp *qp)
{
struct mlx5_ib_resources *devr = &dev->devr;
- struct mlx5_ib_create_qp_resp resp;
+ struct mlx5_ib_create_qp_resp resp = {};
struct mlx5_create_qp_mbox_in *in;
struct mlx5_general_caps *gen;
struct mlx5_ib_create_qp ucmd;
--
2.23.0.rc1.153.gdeed80330f-goog


2019-08-12 10:53:11

by Alessio Balsini

[permalink] [raw]
Subject: [PATCH 4.4.y] IB/mlx5: Fix leaking stack memory to userspace

From: Jason Gunthorpe <[email protected]>

mlx5_ib_create_qp_resp was never initialized and only the first 4 bytes
were written.

Fixes: 41d902cb7c32 ("RDMA/mlx5: Fix definition of mlx5_ib_create_qp_resp")
Cc: <[email protected]>
Acked-by: Leon Romanovsky <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
Signed-off-by: Alessio Balsini <[email protected]>
---
drivers/infiniband/hw/mlx5/qp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c
index 43d277a931c2..c035abfe8c55 100644
--- a/drivers/infiniband/hw/mlx5/qp.c
+++ b/drivers/infiniband/hw/mlx5/qp.c
@@ -865,7 +865,7 @@ static int create_qp_common(struct mlx5_ib_dev *dev, struct ib_pd *pd,
{
struct mlx5_ib_resources *devr = &dev->devr;
struct mlx5_core_dev *mdev = dev->mdev;
- struct mlx5_ib_create_qp_resp resp;
+ struct mlx5_ib_create_qp_resp resp = {};
struct mlx5_create_qp_mbox_in *in;
struct mlx5_ib_create_qp ucmd;
int inlen = sizeof(*in);
--
2.23.0.rc1.153.gdeed80330f-goog

2019-08-12 10:56:34

by Alessio Balsini

[permalink] [raw]
Subject: [PATCH 4.9.y 4.14.y] IB/mlx5: Fix leaking stack memory to userspace

From: Jason Gunthorpe <[email protected]>

commit 0625b4ba1a5d4703c7fb01c497bd6c156908af00 upstream.

mlx5_ib_create_qp_resp was never initialized and only the first 4 bytes
were written.

Fixes: 41d902cb7c32 ("RDMA/mlx5: Fix definition of mlx5_ib_create_qp_resp")
Cc: <[email protected]>
Acked-by: Leon Romanovsky <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
Signed-off-by: Alessio Balsini <[email protected]>
---
drivers/infiniband/hw/mlx5/qp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c
index a7bc89f5dae7..89357d9e489d 100644
--- a/drivers/infiniband/hw/mlx5/qp.c
+++ b/drivers/infiniband/hw/mlx5/qp.c
@@ -1515,7 +1515,7 @@ static int create_qp_common(struct mlx5_ib_dev *dev, struct ib_pd *pd,
struct mlx5_ib_resources *devr = &dev->devr;
int inlen = MLX5_ST_SZ_BYTES(create_qp_in);
struct mlx5_core_dev *mdev = dev->mdev;
- struct mlx5_ib_create_qp_resp resp;
+ struct mlx5_ib_create_qp_resp resp = {};
struct mlx5_ib_cq *send_cq;
struct mlx5_ib_cq *recv_cq;
unsigned long flags;
--
2.23.0.rc1.153.gdeed80330f-goog

2019-08-12 14:25:55

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 4.9.y 4.14.y] IB/mlx5: Fix leaking stack memory to userspace

On Mon, Aug 12, 2019 at 11:55:03AM +0100, Alessio Balsini wrote:
> From: Jason Gunthorpe <[email protected]>
>
> commit 0625b4ba1a5d4703c7fb01c497bd6c156908af00 upstream.
>
> mlx5_ib_create_qp_resp was never initialized and only the first 4 bytes
> were written.
>
> Fixes: 41d902cb7c32 ("RDMA/mlx5: Fix definition of mlx5_ib_create_qp_resp")

This commit only showed up in the following kernel releases:
4.17 4.18.7 4.19

so why is this "fix" commit needed in anything older than 4.17?

That's why I did not backport it to older kernels, as I do not think it
is needed there. Do you?

thanks,

greg k-h

2019-08-13 09:29:26

by Alessio Balsini

[permalink] [raw]
Subject: Re: [PATCH 4.9.y 4.14.y] IB/mlx5: Fix leaking stack memory to userspace

Oops, you are totally right, I was still looking at the latest
mlx5_ib_create_qp_resp struct while backporting these patches :)

Sorry for that,
Alessio

On Mon, Aug 12, 2019 at 04:23:16PM +0200, Greg KH wrote:
> On Mon, Aug 12, 2019 at 11:55:03AM +0100, Alessio Balsini wrote:
> > From: Jason Gunthorpe <[email protected]>
> >
> > commit 0625b4ba1a5d4703c7fb01c497bd6c156908af00 upstream.
> >
> > mlx5_ib_create_qp_resp was never initialized and only the first 4 bytes
> > were written.
> >
> > Fixes: 41d902cb7c32 ("RDMA/mlx5: Fix definition of mlx5_ib_create_qp_resp")
>
> This commit only showed up in the following kernel releases:
> 4.17 4.18.7 4.19
>
> so why is this "fix" commit needed in anything older than 4.17?
>
> That's why I did not backport it to older kernels, as I do not think it
> is needed there. Do you?
>
> thanks,
>
> greg k-h

2019-08-13 10:03:16

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 4.9.y 4.14.y] IB/mlx5: Fix leaking stack memory to userspace

On Tue, Aug 13, 2019 at 10:27:28AM +0100, Alessio Balsini wrote:
> Oops, you are totally right, I was still looking at the latest
> mlx5_ib_create_qp_resp struct while backporting these patches :)
>
> Sorry for that,

Not a problem, it's good to have a second pair of eyes on these things
:)

greg k-h