From: Kuniyuki Iwashima <kuniyu@amazon.com>
To: <kuba@kernel.org>
Cc: <davem@davemloft.net>, <dsahern@kernel.org>,
<edumazet@google.com>, <kuni1840@gmail.com>, <kuniyu@amazon.com>,
<martin.lau@kernel.org>, <netdev@vger.kernel.org>,
<pabeni@redhat.com>
Subject: Re: [PATCH v1 net] tcp/dccp: Don't use timer_pending() in reqsk_queue_unlink().
Date: Mon, 7 Oct 2024 16:52:51 -0700 [thread overview]
Message-ID: <20241007235251.84189-1-kuniyu@amazon.com> (raw)
In-Reply-To: <20241007162610.7d9482dc@kernel.org>
From: Jakub Kicinski <kuba@kernel.org>
Date: Mon, 7 Oct 2024 16:26:10 -0700
> On Mon, 7 Oct 2024 07:15:57 -0700 Kuniyuki Iwashima wrote:
> > Martin KaFai Lau reported use-after-free [0] in reqsk_timer_handler().
> >
> > """
> > We are seeing a use-after-free from a bpf prog attached to
> > trace_tcp_retransmit_synack. The program passes the req->sk to the
> > bpf_sk_storage_get_tracing kernel helper which does check for null
> > before using it.
> > """
>
> I think this crashes a bunch of selftests, example:
>
> https://netdev-3.bots.linux.dev/vmksft-nf-dbg/results/805581/8-nft-queue-sh/stderr
Oops, sorry, I copy-and-pasted __inet_csk_reqsk_queue_drop()
for different reqsk. I'll squash the diff below.
---8<---
diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
index 36f03d51356e..433c80dc57d5 100644
--- a/net/ipv4/inet_connection_sock.c
+++ b/net/ipv4/inet_connection_sock.c
@@ -1188,7 +1190,7 @@ static void reqsk_timer_handler(struct timer_list *t)
}
drop:
- __inet_csk_reqsk_queue_drop(sk_listener, nreq, true);
+ __inet_csk_reqsk_queue_drop(sk_listener, oreq, true);
reqsk_put(req);
}
---8<---
Thanks!
next prev parent reply other threads:[~2024-10-07 23:53 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-07 14:15 [PATCH v1 net] tcp/dccp: Don't use timer_pending() in reqsk_queue_unlink() Kuniyuki Iwashima
2024-10-07 23:26 ` Jakub Kicinski
2024-10-07 23:52 ` Kuniyuki Iwashima [this message]
2024-10-08 9:54 ` Eric Dumazet
2024-10-08 14:21 ` Kuniyuki Iwashima
2024-10-08 14:28 ` Eric Dumazet
2024-10-08 14:42 ` Kuniyuki Iwashima
2024-10-12 4:01 ` Martin KaFai Lau
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=20241007235251.84189-1-kuniyu@amazon.com \
--to=kuniyu@amazon.com \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=kuni1840@gmail.com \
--cc=martin.lau@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.