All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: wei.fang@oss.nxp.com
Cc: imx@lists.linux.dev, Frank.Li@kernel.org
Subject: Re: [PATCH v2 net-next 04/15] net: enetc: add link speed message support to PF driver
Date: Thu, 11 Jun 2026 09:47:33 +0000	[thread overview]
Message-ID: <20260611094734.43EBE1F00898@smtp.kernel.org> (raw)
In-Reply-To: <20260610091844.3423693-5-wei.fang@oss.nxp.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:

Pre-existing issues:
- [High] Pre-existing out-of-bounds heap read in VF mailbox handlers due to unvalidated message length.
--

commit 6b55ba2c40a6c04cf0db8ebb97921067e4376ee1
Author: Wei Fang <wei.fang@nxp.com>
net: enetc: add link speed message support to PF driver

This commit adds link speed message support for DPDK-owned VFs. The PF
driver replies with the current link speed when it receives a get link
speed message from a VF, improving link state visibility for the VF.

> diff --git a/drivers/net/ethernet/freescale/enetc/enetc_msg.c b/drivers/net/ethernet/freescale/enetc/enetc_msg.c
> index eac71f90d80bd..b24903b23a616 100644
> --- a/drivers/net/ethernet/freescale/enetc/enetc_msg.c
> +++ b/drivers/net/ethernet/freescale/enetc/enetc_msg.c
[ ... ]
> @@ -274,6 +277,84 @@ static u16 enetc_msg_handle_link_status(struct enetc_pf *pf, int vf_id,
>  	}
>  }
>  
> +static u16 enetc_msg_get_link_speed(struct enetc_pf *pf, int vf_id)
> +{
[ ... ]
> +}
> +
> +static u16 enetc_msg_handle_link_speed(struct enetc_pf *pf, int vf_id,
> +				       void *vf_msg)
> +{
> +	struct enetc_msg_header *msg_hdr = vf_msg;

[Severity: High]
This isn't a bug introduced by this patch, but could unvalidated message
lengths lead to out-of-bounds heap reads in mailbox handlers?

In existing handlers, the PF driver calculates the allocation size based on
msg_hdr->len (e.g., msg_size = 16 + len) and allocates a buffer. If a trusted
VF sends a message with an artificially small length like 0, only 16 bytes
are allocated.

However, handlers cast this buffer to larger structures and read fields
outside the bounds:

enetc_msg_set_vf_primary_mac_addr() {
    ...
    char *addr = msg->mac[0].addr;
    ...
    if (!is_valid_ether_addr(addr)) {
    ...
        enetc_set_si_hw_addr(pf, vf_id + 1, addr);
    ...
}

Since msg->mac[0].addr starts at offset 20, reading it from a 16-byte
buffer causes an out-of-bounds heap read, which could leak sensitive kernel
memory into the device MAC address registers or crash the host kernel. Should
message lengths be validated against the expected structure size before
processing the messages?

> +
> +	switch (msg_hdr->cmd_id) {
> +	case ENETC_MSG_GET_CURRENT_LINK_SPEED:
> +		return enetc_msg_get_link_speed(pf, vf_id);
> +	case ENETC_MSG_REGISTER_SPEED_CHANGE_NOTIFIER:
> +	case ENETC_MSG_UNREGISTER_SPEED_CHANGE_NOTIFIER:
> +	default:
> +		return ENETC_PF_MSG_NOTSUPP;
> +	}
> +}

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260610091844.3423693-1-wei.fang@oss.nxp.com?part=4

  reply	other threads:[~2026-06-11  9:47 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-10  9:18 [PATCH v2 net-next 00/15] net: enetc: SR-IOV improvements and ENETC v4 VF support wei.fang
2026-06-10  9:18 ` [PATCH v2 net-next 01/15] net: enetc: add trusted " wei.fang
2026-06-10  9:18 ` [PATCH v2 net-next 02/15] net: enetc: move msg_task and msg_int_name to struct enetc_si wei.fang
2026-06-10  9:18 ` [PATCH v2 net-next 03/15] net: enetc: add link status message support to PF driver wei.fang
2026-06-11  9:47   ` sashiko-bot
2026-06-10  9:18 ` [PATCH v2 net-next 04/15] net: enetc: add link speed " wei.fang
2026-06-11  9:47   ` sashiko-bot [this message]
2026-06-10  9:18 ` [PATCH v2 net-next 05/15] net: enetc: use enetc_set_si_hw_addr() to set VF MAC address wei.fang
2026-06-10  9:18 ` [PATCH v2 net-next 06/15] net: enetc: relocate enetc_pf_set_vf_mac() for common PF support wei.fang
2026-06-10  9:18 ` [PATCH v2 net-next 07/15] net: enetc: add .ndo_set_vf_mac() to the enetc v4 driver wei.fang
2026-06-11  9:47   ` sashiko-bot
2026-06-10  9:18 ` [PATCH v2 net-next 08/15] net: enetc: move mac_filter from struct enetc_pf to struct enetc_si wei.fang
2026-06-11  9:47   ` sashiko-bot
2026-06-10  9:18 ` [PATCH v2 net-next 09/15] net: enetc: add MAC address filtering support for VFs of ENETC v4 wei.fang
2026-06-11  9:47   ` sashiko-bot
2026-06-10  9:18 ` [PATCH v2 net-next 10/15] net: enetc: simplify and rename PSIIER enable/disable helpers wei.fang
2026-06-10  9:18 ` [PATCH v2 net-next 11/15] net: enetc: restore VF MAC promiscuous mode after FLR for ENETC v4 wei.fang
2026-06-11  9:47   ` sashiko-bot
2026-06-10  9:18 ` [PATCH v2 net-next 12/15] net: enetc: add VF support for i.MX94 and i.MX95 wei.fang
2026-06-10  9:18 ` [PATCH v2 net-next 13/15] net: enetc: implement ndo_set_rx_mode_async for ENETC v4 VF wei.fang
2026-06-11  9:47   ` sashiko-bot
2026-06-10  9:18 ` [PATCH v2 net-next 14/15] net: enetc: add PSI-to-VSI link status notification support for VF wei.fang
2026-06-11  9:47   ` sashiko-bot
2026-06-10  9:18 ` [PATCH v2 net-next 15/15] net: enetc: add ndo_get_vf_config() support wei.fang

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=20260611094734.43EBE1F00898@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=Frank.Li@kernel.org \
    --cc=imx@lists.linux.dev \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=wei.fang@oss.nxp.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.