From: sashiko-bot@kernel.org
To: "Emerson Busson" <emersonbusson@gmail.com>
Cc: linux-hyperv@vger.kernel.org
Subject: Re: [PATCH v2 13/14] hv: netvsc: handle a NULL request address on empty completions
Date: Thu, 08 Oct 2026 19:09:36 +0000 [thread overview]
Message-ID: <sashiko-outbox-164500@kernel.org> (raw)
In-Reply-To: <20261007190752.336426-14-emersonbusson@gmail.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Critical] netvsc: Type confusion and memory corruption via untrusted host msglen mismatch
- [Low] netvsc: data race on global wake_queue ethtool statistic
--
commit cc27953d7c3e5380170944c920266d1ad5b66616
Author: Emerson Busson <emersonbusson@gmail.com>
Subject: hv: netvsc: handle a NULL request address on empty completions
This commit introduces a new check in the empty-payload branch of the netvsc
send completion path to tolerate NULL request addresses, which occur during
control RNDIS sends. It extracts the queue wake and accounting logic into a
new helper function and provides associated KUnit tests.
[Severity: Critical]
In drivers/net/hyperv/netvsc.c, within the netvsc_send_completion and
netvsc_send_tx_complete functions, is there a potential type confusion
regression? The empty-payload branch relies on the untrusted host msglen == 0
to cast the context pointer to an nvsp_message. If the pointer is actually an
sk_buff, does this result in a memory leak? Conversely, if the host sends a
msglen > 0 for a channel_init_pkt transaction, the pointer is cast to an
sk_buff in netvsc_send_tx_complete. Since the pointer is an interior struct
member rather than an sk_buff, could this cause out-of-bounds reads and
slab memory corruption when napi_consume_skb is called on it? This sequence
is reachable by an untrusted host, which violates the security boundary in
confidential virtual machine environments where the host is untrusted.
[Severity: Low]
In drivers/net/hyperv/netvsc.c, at line 788 within the newly extracted
netvsc_send_acct function, does this code introduce a data race on the
wake_queue ethtool statistic? The increment operation on
ndev_ctx->eth_stats.wake_queue is performed non-atomically. When multiple
VMBus channels process completions in concurrent NAPI softirq contexts on
different CPUs, and both channels need to wake their respective stopped
transmit queues, could they simultaneously evaluate the queue state and
update the shared global counter without synchronization, resulting in lost
increments?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261007190752.336426-1-emersonbusson@gmail.com?part=13
next prev parent reply other threads:[~2026-10-08 19:09 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-07 19:07 [PATCH v2 0/14] hv: vmbus: make rings and host-visible buffers survive buddy fragmentation Emerson Busson
2026-10-07 19:07 ` [PATCH v2 01/14] hv: vmbus: convert ring backing through the chunk allocator Emerson Busson
2026-10-07 19:07 ` [PATCH v2 02/14] hv: vmbus: validate chunk buffer allocation and cleanup Emerson Busson
2026-10-08 21:17 ` kernel test robot
2026-10-07 19:07 ` [PATCH v2 03/14] uio: hv_generic: describe buffers for owned allocation Emerson Busson
2026-10-07 19:07 ` [PATCH v2 04/14] hv: vmbus: add KUnit tests for GPADL post failure injection Emerson Busson
2026-10-07 19:07 ` [PATCH v2 05/14] hv: vmbus: add KUnit test for order-zero allocation fallback Emerson Busson
2026-10-07 19:07 ` [PATCH v2 06/14] hv: vmbus: cover all shared-page policy combinations Emerson Busson
2026-10-07 19:07 ` [PATCH v2 07/14] hv: vmbus: distinguish host rescind from local channel unload Emerson Busson
2026-10-07 19:07 ` [PATCH v2 08/14] hv: vmbus: retain backing until ownership and references clear Emerson Busson
2026-10-08 19:09 ` sashiko-bot
2026-10-07 19:07 ` [PATCH v2 09/14] hv: use owned VMBus buffers in NetVSC and UIO Emerson Busson
2026-10-08 19:09 ` sashiko-bot
2026-10-07 19:07 ` [PATCH v2 10/14] hv: vmbus: pin buffer pages across UIO mmap to close the reclaim race Emerson Busson
2026-10-08 16:49 ` kernel test robot
2026-10-08 17:51 ` Nathan Chancellor
2026-10-08 17:02 ` kernel test robot
2026-10-08 19:09 ` sashiko-bot
2026-10-07 19:07 ` [PATCH v2 11/14] hv: vmbus: vmalloc requestor metadata Emerson Busson
2026-10-08 19:09 ` sashiko-bot
2026-10-07 19:07 ` [PATCH v2 12/14] hv: netvsc: allocate RNDIS request descriptors with kvzalloc_obj() Emerson Busson
2026-10-08 19:09 ` sashiko-bot
2026-10-07 19:07 ` [PATCH v2 13/14] hv: netvsc: handle a NULL request address on empty completions Emerson Busson
2026-10-08 19:09 ` sashiko-bot [this message]
2026-10-07 19:07 ` [PATCH v2 14/14] hv: netvsc: use kvzalloc for device state Emerson Busson
2026-10-08 19:09 ` sashiko-bot
2026-10-08 16:55 ` [PATCH v2 0/14] hv: vmbus: make rings and host-visible buffers survive buddy fragmentation Easwar Hariharan
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=sashiko-outbox-164500@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=emersonbusson@gmail.com \
--cc=linux-hyperv@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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