Messages in this thread | | | Date | Wed, 15 Nov 2017 12:36:56 +0100 | From | Steffen Klassert <> | Subject | Re: KASAN: stack-out-of-bounds Read in xfrm_state_find (2) |
| |
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 <steffen.klassert@secunet.com>
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.
| |