From mboxrd@z Thu Jan 1 00:00:00 1970 From: Herbert Xu Subject: Re: [PATCH net] xfrm: fix stack access out of bounds with CONFIG_XFRM_SUB_POLICY Date: Fri, 21 Apr 2017 19:06:44 +0800 Message-ID: <20170421110643.GA13809@gondor.apana.org.au> References: <17208ec89e09ed7223ffd2302abfa3475255c384.1492769294.git.sd@queasysnail.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: netdev@vger.kernel.org, Steffen Klassert To: Sabrina Dubroca Return-path: Received: from [198.176.57.175] ([198.176.57.175]:42786 "EHLO deadmen.hmeau.com" rhost-flags-FAIL-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1038266AbdDULHK (ORCPT ); Fri, 21 Apr 2017 07:07:10 -0400 Content-Disposition: inline In-Reply-To: <17208ec89e09ed7223ffd2302abfa3475255c384.1492769294.git.sd@queasysnail.net> Sender: netdev-owner@vger.kernel.org List-ID: On Fri, Apr 21, 2017 at 12:14:51PM +0200, Sabrina Dubroca wrote: > When CONFIG_XFRM_SUB_POLICY=y, xfrm_dst stores a copy of the flowi for > that dst. Unfortunately, the code that allocates and fills this copy > doesn't care about what type of flowi (flowi, flowi4, flowi6) gets > passed. In multiple code paths (from raw_sendmsg, from TCP when > replying to a FIN, in vxlan, geneve, and gre), the flowi that gets > passed to xfrm is actually an on-stack flowi4, so we end up reading > memory on the stack past the end of the flowi4 struct. > > Since xfrm_dst->origin isn't used anywhere, just get rid of it. > xfrm_dst->partner isn't used either, so get rid of that too. > > Fixes: ca116922afa8 ("xfrm: Eliminate "fl" and "pol" args to xfrm_bundle_ok().") The commit you refer to here doesn't seem to have caused this bug. Thanks, -- Email: Herbert Xu Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt