From: Eric Dumazet <edumazet@google.com>
To: Florian Westphal <fw@strlen.de>
Cc: netfilter-devel@vger.kernel.org
Subject: Re: [PATCH nf v2] netfilter: conntrack: dccp: copy entire header to stack buffer, not just basic one
Date: Wed, 21 Jun 2023 22:15:37 +0200 [thread overview]
Message-ID: <CANn89iJu-4WNKh4Ah28gYTCFFr+DxqT35NG36zHbkBc7TDO9mQ@mail.gmail.com> (raw)
In-Reply-To: <20230621155653.11078-1-fw@strlen.de>
On Wed, Jun 21, 2023 at 5:56 PM Florian Westphal <fw@strlen.de> wrote:
>
> Eric Dumazet says:
> nf_conntrack_dccp_packet() has an unique:
>
> dh = skb_header_pointer(skb, dataoff, sizeof(_dh), &_dh);
>
> And nothing more is 'pulled' from the packet, depending on the content.
> dh->dccph_doff, and/or dh->dccph_x ...)
> So dccp_ack_seq() is happily reading stuff past the _dh buffer.
>
> BUG: KASAN: stack-out-of-bounds in nf_conntrack_dccp_packet+0x1134/0x11c0
> Read of size 4 at addr ffff000128f66e0c by task syz-executor.2/29371
> [..]
>
> Fix this by increasing the stack buffer to also include room for
> the extra sequence numbers and all the known dccp packet type headers,
> then pull again after the initial validation of the basic header.
>
> While at it, mark packets invalid that lack 48bit sequence bit but
> where RFC says the type MUST use them.
>
> Compile tested only.
>
> v2: first skb_header_pointer() now needs to adjust the size to
> only pull the generic header. (Eric)
>
> Heads-up: I intend to remove dccp conntrack support later this year.
>
> Fixes: 2bc780499aa3 ("[NETFILTER]: nf_conntrack: add DCCP protocol support")
> Reported-by: Eric Dumazet <edumazet@google.com>
> Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Thanks Florian.
next prev parent reply other threads:[~2023-06-21 20:15 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-21 15:56 [PATCH nf v2] netfilter: conntrack: dccp: copy entire header to stack buffer, not just basic one Florian Westphal
2023-06-21 20:15 ` Eric Dumazet [this message]
2023-06-26 15:16 ` Pablo Neira Ayuso
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CANn89iJu-4WNKh4Ah28gYTCFFr+DxqT35NG36zHbkBc7TDO9mQ@mail.gmail.com \
--to=edumazet@google.com \
--cc=fw@strlen.de \
--cc=netfilter-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).