[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ad87cf0f-2ff4-48d7-b53c-bc4b5e98cfca@nod.at>
Date: Fri, 30 Jun 2017 22:23:24 +0200
From: Richard Weinberger <richard@....at>
To: Florian Westphal <fw@...len.de>
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Pablo Neira Ayuso <pablo@...filter.org>,
David Miller <davem@...emloft.net>,
netfilter-devel@...r.kernel.org, coreteam@...filter.org,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
David Gstir <david@...ma-star.at>, kaber@...sh.net,
"keescook@...omium.org" <keescook@...omium.org>
Subject: Re: nf_conntrack: Infoleak via CTA_ID and CTA_EXPECT_ID
Florian,
Am 30.06.2017 um 21:55 schrieb Florian Westphal:
>>> Why not use a hash of the address?
>>
>> Would also work. Or xor it with a random number.
>>
>> On the other hand, for user space it would be more useful when the conntrack id
>> does not repeat that often. That's why I favor the good old counter method.
>> Currently the conntrack id is reused very fast.
>> e.g. in one of our applications we use the conntack id via NFQUEUE and watch the
>> destroy events via conntrack. It happens regularly that a new connection has the
>> same id than a different connection we saw some moments before, before we receive
>> the destroy event from the conntrack socket.
>
> Perhaps we can place that in a new extension (its not needed in any
> fastpath ops)?
To get rid of the infoleak we have to re-introduce the id field in struct nf_conn
and struct nf_conntrack_expect.
Otherwise have nothing to compare against in the conntrack/expect remove case.
So the only question is what to store, IMHO a counter that can wrap around is the
cheapest method and would also not harm the fast-path.
Thanks,
//richard
Powered by blists - more mailing lists