From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757788AbdKOLhF (ORCPT ); Wed, 15 Nov 2017 06:37:05 -0500 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 Date: Wed, 15 Nov 2017 12:36:56 +0100 From: Steffen Klassert To: Florian Westphal CC: syzbot , , , , , , Subject: Re: KASAN: stack-out-of-bounds Read in xfrm_state_find (2) 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" Content-Disposition: inline In-Reply-To: <20171106101646.GG23855@secunet.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-G-Data-MailSecurity-for-Exchange-State: 0 X-G-Data-MailSecurity-for-Exchange-Error: 0 X-G-Data-MailSecurity-for-Exchange-Sender: 23 X-G-Data-MailSecurity-for-Exchange-Server: d65e63f7-5c15-413f-8f63-c0d707471c93 X-EXCLAIMER-MD-CONFIG: 2c86f778-e09b-4440-8b15-867914633a10 X-G-Data-MailSecurity-for-Exchange-Guid: 8246F3AC-CF00-47F4-A508-ECD1EA994965 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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.