All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: wei.fang@oss.nxp.com
Cc: Frank.Li@kernel.org, imx@lists.linux.dev
Subject: Re: [PATCH net-next 11/15] net: enetc: restore VF MAC promiscuous mode after FLR for ENETC v4
Date: Sat, 06 Jun 2026 07:24:41 +0000	[thread overview]
Message-ID: <20260606072442.036A21F00899@smtp.kernel.org> (raw)
In-Reply-To: <20260605065550.3038579-12-wei.fang@oss.nxp.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Critical] State leakage of VF configuration flags across SR-IOV disable/enable cycles leading to privilege escalation.
--

commit 4b3358f3b481a101e7878efe2d4cc289110ff9db
Author: Wei Fang <wei.fang@nxp.com>
net: enetc: restore VF MAC promiscuous mode after FLR for ENETC v4

This commit adds tracking for VF MAC promiscuous mode to mitigate a security
vulnerability where a VF Function Level Reset (FLR) defaults to enabling
promiscuous mode. It introduces a vf_flr_handler callback to restore the
hardware state based on PF-managed policies.

> diff --git a/drivers/net/ethernet/freescale/enetc/enetc4_pf.c b/drivers/net/ethernet/freescale/enetc/enetc4_pf.c
> index 2e081a59154e1..15c8b704b2b75 100644
> --- a/drivers/net/ethernet/freescale/enetc/enetc4_pf.c
> +++ b/drivers/net/ethernet/freescale/enetc/enetc4_pf.c

[ ... ]

> @@ -283,11 +283,32 @@ static void enetc4_pf_set_mac_filter(struct enetc_pf *pf, int type)
>  		enetc4_pf_set_mac_hash_filter(pf, ENETC_MAC_FILTER_TYPE_MC);
>  }
>  
> +static void enetc4_pf_vf_flr_handler(struct enetc_pf *pf, int vf_id)
> +{
> +	struct enetc_hw *hw = &pf->si->hw;
> +	struct enetc_vf_state *vf_state;
> +	bool uc_promisc, mc_promisc;
> +
> +	vf_state = &pf->vf_state[vf_id];
> +	mutex_lock(&vf_state->lock);
> +
> +	uc_promisc = !!(vf_state->flags & ENETC_VF_FLAG_UC_PROMISC);
> +	mc_promisc = !!(vf_state->flags & ENETC_VF_FLAG_MC_PROMISC);
> +
> +	mutex_lock(&pf->msg_lock);
> +	enetc4_pf_set_si_mac_promisc(hw, vf_id + 1, UC, uc_promisc);

[Severity: Critical]
Does this introduce a privilege escalation due to state leakage across SR-IOV
disable/enable cycles?

When SR-IOV is disabled, enetc_sriov_configure() drops pf->num_vfs but does 
not appear to clear the pf->vf_state array. As a result, the state from the 
previous session leaks into the next session.

If a previously trusted VF had these flags set, a newly created untrusted VF 
would inherit them. The untrusted VM could then deliberately trigger a 
Function Level Reset (FLR), causing this handler to explicitly restore the 
hardware to promiscuous mode based on the leaked flags:

enetc4_pf_vf_flr_handler()
    uc_promisc = !!(vf_state->flags & ENETC_VF_FLAG_UC_PROMISC);
    ...
    enetc4_pf_set_si_mac_promisc(hw, vf_id + 1, UC, uc_promisc);

Could this allow an untrusted VM to sniff network traffic destined for other 
VMs or the host? Should pf->vf_state be reinitialized when SR-IOV is 
disabled or enabled?

> +	enetc4_pf_set_si_mac_promisc(hw, vf_id + 1, MC, mc_promisc);
> +	mutex_unlock(&pf->msg_lock);
> +
> +	mutex_unlock(&vf_state->lock);
> +}

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

  reply	other threads:[~2026-06-06  7:24 UTC|newest]

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