lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c29e3424-f6ef-4d38-e150-fcf82d364ad2@strongswan.org>
Date: Mon, 8 May 2023 11:03:36 +0200
From: Tobias Brunner <tobias@...ongswan.org>
To: Steffen Klassert <steffen.klassert@...unet.com>
Cc: Herbert Xu <herbert@...dor.apana.org.au>, netdev@...r.kernel.org,
 "David S . Miller" <davem@...emloft.net>
Subject: Re: [PATCH ipsec] xfrm: Reject optional tunnel/BEET mode templates in
 outbound policies

On 08.05.23 07:59, Steffen Klassert wrote:
> On Fri, May 05, 2023 at 12:16:16PM +0200, Tobias Brunner wrote:
>> xfrm_state_find() uses `encap_family` of the current template with
>> the passed local and remote addresses to find a matching state.
>> If an optional tunnel or BEET mode template is skipped in a mixed-family
>> scenario, there could be a mismatch causing an out-of-bounds read as
>> the addresses were not replaced to match the family of the next template.
>>
>> While there are theoretical use cases for optional templates in outbound
>> policies, the only practical one is to skip IPComp states in inbound
>> policies if uncompressed packets are received that are handled by an
>> implicitly created IPIP state instead.
>>
>> Signed-off-by: Tobias Brunner <tobias@...ongswan.org>
> 
> Your patch seems to be corrupt:
> 
> warning: Patch sent with format=flowed; space at the end of lines might be lost.
> Applying: af_key: Reject optional tunnel/BEET mode templates in outbound policies
> error: corrupt patch at line 18

Sorry about that, I'll resend.

> Also, please add a 'Fixes' tag, so that it can be backported.

What should the target commit be?  I saw you used 1da177e4c3f4
("Linux-2.6.12-rc2") in your fix, but maybe the more recent 8444cf712c5f
("xfrm: Allow different selector family in temporary state") would fit
better as that changed `family` to `encap_family` in
`xfrm_state_find()`?  (I guess it doesn't matter in practice as 2.6.36
is way older than any LTS kernel this will get backported to.)

Regards,
Tobias


Powered by blists - more mailing lists