From: Stanislav Fomichev <sdf.kernel@gmail.com>
To: Alexander Lobakin <aleksander.lobakin@intel.com>
Cc: "Cen Zhang (Microsoft)" <blbllhy@gmail.com>,
magnus.karlsson@intel.com, maciej.fijalkowski@intel.com,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, sdf@fomichev.me, horms@kernel.org,
netdev@vger.kernel.org, bpf@vger.kernel.org,
linux-kernel@vger.kernel.org,
AutonomousCodeSecurity@microsoft.com,
tgopinath@linux.microsoft.com, kys@microsoft.com
Subject: Re: [PATCH net v2] xsk: reject undersized tx_metadata at runtime validation
Date: Fri, 24 Jul 2026 09:02:21 -0700 [thread overview]
Message-ID: <amOMXI2j-3tLiej5@devvm7509.cco0.facebook.com> (raw)
In-Reply-To: <27dd39a0-71bd-4cff-8e72-6aa45df57dff@intel.com>
On 07/24, Alexander Lobakin wrote:
> From: Stanislav Fomichev <sdf.kernel@gmail.com>
> Date: Thu, 23 Jul 2026 10:15:15 -0700
>
> > On 07/23, Alexander Lobakin wrote:
> >> From: Stanislav Fomichev <sdf.kernel@gmail.com>
> >> Date: Wed, 22 Jul 2026 10:55:17 -0700
> >>
> >>> On 07/22, Cen Zhang (Microsoft) wrote:
> >>>> There is no metadata length check before accessing struct xsk_tx_metadata
> >>>> fields in both xdp_umem_reg() (registration) and
> >>>> xsk_buff_valid_tx_metadata() (runtime). Thus, an invalid small
> >>>> tx_metadata_len (e.g. 8 bytes) passes registration and later causes an
> >>>> out-of-bounds read when xsk_skb_metadata() accesses fields beyond the
> >>>> declared metadata region.
> >>
> >> [...]
> >>
> >>> @@ -773,7 +773,7 @@ struct xdp_desc_ctx xp_raw_get_ctx(const struct xsk_buff_pool *pool, u64 addr)
> >>> addr = __xp_raw_get_addr(pool, addr);
> >>>
> >>> ret.dma = __xp_raw_get_dma(pool, addr);
> >>> - ret.meta = __xsk_buff_get_metadata(pool, __xp_raw_get_data(pool, addr));
> >>> + xsk_buff_read_metadata(pool, addr, &ret.meta);
> >>
> >> That effectively disables some micro-optimizations that were the reason
> >> I created this helper -- __xp_raw_get_data() is inline, while
> >> xsk_buff_read_metadata() uses the external version, probably some other
> >> stuff (note the underscored __xsk_buff_get_metadata()) =\ This function
> >> expanded to have no external calls on clang -O2, with this patch I'm not
> >> sure it would.
> >
> > Any better ideas on how to solve it? I can convert all non libeth stuff
> > to these new xsk_buff_read_metadata helpers and keep xp_raw_get_ctx
> > to you? Will that work?
>
> Sure, I can take a look.
>
> Do you want me to pick this patch as a base or you'd like to send a new rev?
I have an idea on how to keep the existing pointer (instead of introducing a
copy). Let me play with it today, will send something hopefully Monday..
next prev parent reply other threads:[~2026-07-24 16:02 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-22 4:13 [PATCH net v2] xsk: reject undersized tx_metadata at runtime validation Cen Zhang (Microsoft)
2026-07-22 17:55 ` Stanislav Fomichev
2026-07-23 10:34 ` Maciej Fijalkowski
2026-07-23 12:06 ` Cen Zhang
2026-07-23 12:18 ` Maciej Fijalkowski
2026-07-23 12:26 ` Cen Zhang
2026-07-23 17:14 ` Stanislav Fomichev
2026-07-23 15:16 ` Alexander Lobakin
2026-07-23 17:15 ` Stanislav Fomichev
2026-07-24 13:16 ` Alexander Lobakin
2026-07-24 16:02 ` Stanislav Fomichev [this message]
2026-07-23 4:13 ` sashiko-bot
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=amOMXI2j-3tLiej5@devvm7509.cco0.facebook.com \
--to=sdf.kernel@gmail.com \
--cc=AutonomousCodeSecurity@microsoft.com \
--cc=aleksander.lobakin@intel.com \
--cc=blbllhy@gmail.com \
--cc=bpf@vger.kernel.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=kys@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maciej.fijalkowski@intel.com \
--cc=magnus.karlsson@intel.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sdf@fomichev.me \
--cc=tgopinath@linux.microsoft.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.