CVE-2026-98014

CVE-2026-98014

published September 25, 2026

CVSS
—
EPSS
0%
Percentile
6.3
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

net/mlx5: E-Switch, prevent mc_list repopulation during vport disable

In mlx5_esw_vport_disable(), move esw_apply_vport_rx_mode() ahead

of esw_vport_change_handle_locked() so vport->allmulti_rule is

NULL before the change handler observes it.

During FW-fatal recovery the disable runs while dev->state ==

INTERNAL_ERROR. The promisc query inside esw_update_vport_rx_mode()

fails and returns early, leaving vport->allmulti_rule intact, so

esw_update_vport_mc_promisc() runs and adds MLX5_ACTION_ADD entries

to vport->mc_list whose flow rules are then installed in the FDB

by esw_add_mc_addr(). esw_destroy_legacy_table() tears down the

FDB with those refs still held, corrupting the sub-tree and

leaving dangling flow_rule pointers in vport->mc_list.

Two-stage failure on `echo 1 > /sys/bus/pci/devices/<bdf>/reset`:

refcount_t: underflow; use-after-free.

tree_put_node+0xef/0x110 [mlx5_core]

clean_tree+0x44/0xd0 [mlx5_core] (x5)

mlx5_fs_core_cleanup+0x57/0x1c0 [mlx5_core]

mlx5_unload+0x65/0xd0 [mlx5_core]

... mlx5_health_try_recover

BUG: unable to handle page fault for address: 0000000003000055

down_write+0x1c/0x60

mlx5_del_flow_rules+0x33/0x1f0 [mlx5_core]

esw_del_mc_addr+0x7b/0x170 [mlx5_core]

esw_apply_vport_addr_list+0x56/0xf0 [mlx5_core]

esw_vport_change_handle_locked+0x28b/0x310 [mlx5_core]

mlx5_esw_vport_enable+0x270/0x4a0 [mlx5_core]

... mlx5_load ... mlx5_health_try_recover

esw_apply_vport_rx_mode(false, false) clears vport->allmulti_rule

via its local state machine even when the FW del fails. With the

rule NULL the !IS_ERR_OR_NULL(allmulti_rule) gate in the change

handler closes, no rules are installed during disable, and the

reload starts with a clean mc_list.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00172 · 6.3th percentile
Published
2026-09-25T15:17Z
References (7)
EPSS history
Timeline
  • 27 SEP 03:28Z
    EPSS moved — → 0%
    epss
  • 25 SEP 10:23Z
    net/mlx5: E-Switch, prevent mc_list repopulation during vport disable
    cvelistv5