All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chenguang Zhao <chenguang.zhao@linux.dev>
To: Mark Amirkan <markdamirkan@gmail.com>
Cc: Bryan Whitehead <bryan.whitehead@microchip.com>,
	UNGLinuxDriver@microchip.com, Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Raju Lakkaraju <Raju.Lakkaraju@microchip.com>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Subject: Re: [PATCH net] net: lan743x: fix RX checksum use-after-free
Date: Mon, 14 Sep 2026 11:00:27 +0800	[thread overview]
Message-ID: <20260914030027.GA92852@pc> (raw)
In-Reply-To: <20260913-b4-send-lan743x-uaf-v1-1-73d563d08ba9@gmail.com>

On Sun, Sep 13, 2026 at 05:14:09PM -0700, Mark Amirkan wrote:
> lan743x_rx_process_buffer() adds each non-first receive buffer to the
> head skb's frag_list.  On the last descriptor, lan743x_rx_trim_skb()
> linearizes the head and frees the fragment skb metadata.
> 
> The checksum-success path then writes ip_summed through the local skb
> pointer, which still points to the final fragment.  This causes a
> use-after-free write when a packet spans more than one receive buffer.
> 
> Set ip_summed on the surviving head skb instead.  Multi-buffer receive
> can occur after a live MTU increase because existing ring entries keep
> their old buffer size until they are replenished.
> 
> A KUnit test invoking lan743x_rx_process_buffer() with a two-buffer
> packet produced a one-byte KASAN use-after-free write before this change.
> The same test passed after the change.  The driver object also builds
> with W=1.  This was not tested on physical LAN743x hardware.
> 
> Fixes: cd6910501cfd ("net: lan743x: Add support for Rx IP & TCP checksum offload")
> Cc: stable@vger.kernel.org
> Assisted-by: LLM Symbolic
> Signed-off-by: Mark Amirkan <markdamirkan@gmail.com>
> ---
>  drivers/net/ethernet/microchip/lan743x_main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/microchip/lan743x_main.c b/drivers/net/ethernet/microchip/lan743x_main.c
> index 24ae56a3c9ed7..82d3ec20ba259 100644
> --- a/drivers/net/ethernet/microchip/lan743x_main.c
> +++ b/drivers/net/ethernet/microchip/lan743x_main.c
> @@ -2604,7 +2604,7 @@ static int lan743x_rx_process_buffer(struct lan743x_rx *rx)
>  							rx->adapter->netdev);
>  		if (rx->adapter->netdev->features & NETIF_F_RXCSUM) {
>  			if (!is_ice && !is_tce && !is_icsm)
> -				skb->ip_summed = CHECKSUM_UNNECESSARY;
> +				rx->skb_head->ip_summed = CHECKSUM_UNNECESSARY;
>  		}
>  		netdev_dbg(netdev, "sending %d byte frame to OS",
>  			   rx->skb_head->len);
> 
> ---
> base-commit: e6b6078ea1731b05b3b552497b3bce4bf8b014ae
> change-id: 20260913-b4-send-lan743x-uaf-9d770ad5c929
> 
> Best regards,
> --  
> Mark Amirkan <markdamirkan@gmail.com>
> 
Reviewed-by: Chenguang Zhao <zhaochenguang@kylinos.cn>

Chenguang
Thanks

  reply	other threads:[~2026-09-14  3:00 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-14  0:14 [PATCH net] net: lan743x: fix RX checksum use-after-free Mark Amirkan via B4 Relay
2026-09-14  0:14 ` Mark Amirkan
2026-09-14  3:00 ` Chenguang Zhao [this message]
2026-09-17  0:40 ` patchwork-bot+netdevbpf

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=20260914030027.GA92852@pc \
    --to=chenguang.zhao@linux.dev \
    --cc=Raju.Lakkaraju@microchip.com \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=bryan.whitehead@microchip.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=markdamirkan@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=stable@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 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.