2012-10-22 18:12:58

by Jay Fenlason

[permalink] [raw]
Subject: [PATCH] prevent CVE-2012-2372 rds-ping causes kernel panic

If you use rds-ping of the local IP address of some Infiniband HCAs
(QLogic, possibly others) the machine will panic with a BUG_ON due to
an overly restrictive check. Loosen the restriction a bit

This should have gotten sent a while ago (it was first noticed in
https://bugzilla.redhat.com/show_bug.cgi?id=803936
and patched in kernel-2.6.32-275.el6) but I got confused about its
embargo status and lost it.

Signed-off-by: Jay Fenlason <[email protected]>

diff --git a/net/rds/ib_send.c b/net/rds/ib_send.c
index e590949..7920c85 100644
--- a/net/rds/ib_send.c
+++ b/net/rds/ib_send.c
@@ -544,7 +544,7 @@ int rds_ib_xmit(struct rds_connection *conn, struct rds_message *rm,
int flow_controlled = 0;
int nr_sig = 0;

- BUG_ON(off % RDS_FRAG_SIZE);
+ BUG_ON(!conn->c_loopback && off % RDS_FRAG_SIZE);
BUG_ON(hdr_off != 0 && hdr_off != sizeof(struct rds_header));

/* Do not send cong updates to IB loopback */


2012-10-22 18:19:55

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] prevent CVE-2012-2372 rds-ping causes kernel panic

On Mon, Oct 22, 2012 at 02:12:54PM -0400, Jay Fenlason wrote:
> If you use rds-ping of the local IP address of some Infiniband HCAs
> (QLogic, possibly others) the machine will panic with a BUG_ON due to
> an overly restrictive check. Loosen the restriction a bit
>
> This should have gotten sent a while ago (it was first noticed in
> https://bugzilla.redhat.com/show_bug.cgi?id=803936
> and patched in kernel-2.6.32-275.el6) but I got confused about its
> embargo status and lost it.
>
> Signed-off-by: Jay Fenlason <[email protected]>
>
> diff --git a/net/rds/ib_send.c b/net/rds/ib_send.c

<formletter>

This is not the correct way to submit patches for inclusion in the
stable kernel tree. Please read Documentation/stable_kernel_rules.txt
for how to do this properly.

</formletter>

2012-10-22 18:25:53

by Bart Van Assche

[permalink] [raw]
Subject: Re: [PATCH] prevent CVE-2012-2372 rds-ping causes kernel panic

On 10/22/12 20:12, Jay Fenlason wrote:
> If you use rds-ping of the local IP address of some Infiniband HCAs
> (QLogic, possibly others) the machine will panic with a BUG_ON due to
> an overly restrictive check. Loosen the restriction a bit
>
> This should have gotten sent a while ago (it was first noticed in
> https://bugzilla.redhat.com/show_bug.cgi?id=803936
> and patched in kernel-2.6.32-275.el6) but I got confused about its
> embargo status and lost it.
>
> Signed-off-by: Jay Fenlason <[email protected]>
>
> diff --git a/net/rds/ib_send.c b/net/rds/ib_send.c
> index e590949..7920c85 100644
> --- a/net/rds/ib_send.c
> +++ b/net/rds/ib_send.c
> @@ -544,7 +544,7 @@ int rds_ib_xmit(struct rds_connection *conn, struct rds_message *rm,
> int flow_controlled = 0;
> int nr_sig = 0;
>
> - BUG_ON(off % RDS_FRAG_SIZE);
> + BUG_ON(!conn->c_loopback && off % RDS_FRAG_SIZE);
> BUG_ON(hdr_off != 0 && hdr_off != sizeof(struct rds_header));
>
> /* Do not send cong updates to IB loopback */

Hello Jay,

The recommended approach for checking preconditions is to use
WARN_ON_ONCE(), not BUG_ON(). Linus explained this last month in a
message posted on the LKML (http://lkml.org/lkml/2012/9/27/461).

Bart.