From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steffen Klassert Subject: Re: KASAN: stack-out-of-bounds Read in xfrm_state_find (2) Date: Wed, 15 Nov 2017 12:36:56 +0100 Message-ID: <20171115113656.GU11292@secunet.com> References: <20171101220608.GA9424@breakpoint.cc> <20171102103237.GL11292@secunet.com> <20171102122528.GB9424@breakpoint.cc> <20171103121012.GA23855@secunet.com> <20171106101646.GG23855@secunet.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Cc: syzbot , , , , , , To: Florian Westphal Return-path: Received: from a.mx.secunet.com ([62.96.220.36]:57150 "EHLO a.mx.secunet.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752860AbdKOLg6 (ORCPT ); Wed, 15 Nov 2017 06:36:58 -0500 Content-Disposition: inline In-Reply-To: <20171106101646.GG23855@secunet.com> Sender: netdev-owner@vger.kernel.org List-ID: On Mon, Nov 06, 2017 at 11:16:46AM +0100, Steffen Klassert wrote: > > Subject: [PATCH ipsec] xfrm: Fix stack-out-of-bounds read in xfrm_state_find. > > When we do tunnel or beet mode, we pass saddr and daddr from the > template to xfrm_state_find(), this is ok. On transport mode, > we pass the addresses from the flowi, assuming that the IP > addresses (and address family) don't change during transformation. > This assumption is wrong in the IPv4 mapped IPv6 case, packet > is IPv4 and template is IPv6. Fix this by using the addresses > from the template unconditionally. > > Signed-off-by: Steffen Klassert I had to revert this, it broke transport mode when the policy template has no src and dst addresses configured. I'll come up with some other fix, probably don't do policy/flow maching when a socket policies address family does not match the flow address family. This should hopefully fix this whole class of IPv4 mapped IPv6 with socket policy bugs.