From: Breno Leitao <leitao@debian.org>
To: Jaeyoung Chung <jjy600901@snu.ac.kr>
Cc: davem@davemloft.net, edumazet@google.com,
herbert@gondor.apana.org.au, kuba@kernel.org,
netdev@vger.kernel.org, pabeni@redhat.com,
steffen.klassert@secunet.com, horms@kernel.org,
linux-kernel@vger.kernel.org, eulgyukim@snu.ac.kr
Subject: Re: [BUG] general protection fault in espintcp_sendmsg
Date: Thu, 20 Aug 2026 02:49:48 -0700 [thread overview]
Message-ID: <aobNl-rf638H__xI@gmail.com> (raw)
In-Reply-To: <20260819155349.3555804-1-jjy600901@snu.ac.kr>
On Thu, Aug 20, 2026 at 12:53:47AM +0900, Jaeyoung Chung wrote:
> Hello,
>
> We found a "general protection fault in espintcp_sendmsg" on Linux v7.2.
> The issue was found by our own race fuzzer. We have not analyzed the root
> cause, so we do not have a proposed fix to offer.
>
> To reproduce the race reliably, we applied the delay patch below to the
> kernel and ran the C reproducer as root inside an x86_64 QEMU guest. The
> crash log we observed, the delay patch and the reproducer are all included
> below.
>
> The following kernel config options are required to reproduce the issue:
> CONFIG_XFRM=y
> CONFIG_XFRM_USER=y
> CONFIG_INET_ESP=y
> CONFIG_INET_ESPINTCP=y
> CONFIG_KASAN=y
>
> We hope this report is useful. Please let us know if any further
> information would help.
this seems to be a real issue.
espintcp_init_sk() installs the espintcp proto and proto_ops before it
publishes the socket's espintcp context:
sk->sk_prot = &espintcp_prot;
sk->sk_socket->ops = &espintcp_ops;
...
rcu_assign_pointer(icsk->icsk_ulp_data, ctx);
setsockopt(TCP_ULP) holds the socket lock, but the readers pick up the
new handlers without it: inet_sendmsg() and inet_recvmsg() dispatch on
READ_ONCE(sk->sk_prot), sock_poll() on READ_ONCE(sock->ops).
A concurrent write(), read() or poll() then enters espintcp_sendmsg(),
espintcp_recvmsg() or espintcp_poll() with icsk_ulp_data still NULL, and
dereferences it.
prev parent reply other threads:[~2026-08-20 10:21 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-19 15:53 [BUG] general protection fault in espintcp_sendmsg Jaeyoung Chung
2026-08-20 8:22 ` Xuanqiang Luo
2026-08-20 9:49 ` Breno Leitao [this message]
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=aobNl-rf638H__xI@gmail.com \
--to=leitao@debian.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=eulgyukim@snu.ac.kr \
--cc=herbert@gondor.apana.org.au \
--cc=horms@kernel.org \
--cc=jjy600901@snu.ac.kr \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=steffen.klassert@secunet.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.