CVE-2025-38109
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
03/07/2025
Last modified:
03/07/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
net/mlx5: Fix ECVF vports unload on shutdown flow<br />
<br />
Fix shutdown flow UAF when a virtual function is created on the embedded<br />
chip (ECVF) of a BlueField device. In such case the vport acl ingress<br />
table is not properly destroyed.<br />
<br />
ECVF functionality is independent of ecpf_vport_exists capability and<br />
thus functions mlx5_eswitch_(enable|disable)_pf_vf_vports() should not<br />
test it when enabling/disabling ECVF vports.<br />
<br />
kernel log:<br />
[] refcount_t: underflow; use-after-free.<br />
[] WARNING: CPU: 3 PID: 1 at lib/refcount.c:28<br />
refcount_warn_saturate+0x124/0x220<br />
----------------<br />
[] Call trace:<br />
[] refcount_warn_saturate+0x124/0x220<br />
[] tree_put_node+0x164/0x1e0 [mlx5_core]<br />
[] mlx5_destroy_flow_table+0x98/0x2c0 [mlx5_core]<br />
[] esw_acl_ingress_table_destroy+0x28/0x40 [mlx5_core]<br />
[] esw_acl_ingress_lgcy_cleanup+0x80/0xf4 [mlx5_core]<br />
[] esw_legacy_vport_acl_cleanup+0x44/0x60 [mlx5_core]<br />
[] esw_vport_cleanup+0x64/0x90 [mlx5_core]<br />
[] mlx5_esw_vport_disable+0xc0/0x1d0 [mlx5_core]<br />
[] mlx5_eswitch_unload_ec_vf_vports+0xcc/0x150 [mlx5_core]<br />
[] mlx5_eswitch_disable_sriov+0x198/0x2a0 [mlx5_core]<br />
[] mlx5_device_disable_sriov+0xb8/0x1e0 [mlx5_core]<br />
[] mlx5_sriov_detach+0x40/0x50 [mlx5_core]<br />
[] mlx5_unload+0x40/0xc4 [mlx5_core]<br />
[] mlx5_unload_one_devl_locked+0x6c/0xe4 [mlx5_core]<br />
[] mlx5_unload_one+0x3c/0x60 [mlx5_core]<br />
[] shutdown+0x7c/0xa4 [mlx5_core]<br />
[] pci_device_shutdown+0x3c/0xa0<br />
[] device_shutdown+0x170/0x340<br />
[] __do_sys_reboot+0x1f4/0x2a0<br />
[] __arm64_sys_reboot+0x2c/0x40<br />
[] invoke_syscall+0x78/0x100<br />
[] el0_svc_common.constprop.0+0x54/0x184<br />
[] do_el0_svc+0x30/0xac<br />
[] el0_svc+0x48/0x160<br />
[] el0t_64_sync_handler+0xa4/0x12c<br />
[] el0t_64_sync+0x1a4/0x1a8<br />
[] --[ end trace 9c4601d68c70030e ]---