net/mlx5e: TC, Check if flow is PEER before acquiring devcom lock (Linux Linux)

CVE-2026-80739
Not available

At a glance

Source
NVD
EPSS
EPSS 0.17 % · percentile 7 ()
State
PUBLISHED
Published
Updated
Assigner
Linux
NVD status
Received

Description

In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: TC, Check if flow is PEER before acquiring devcom lock In case __mlx5e_add_fdb_flow() fails in lower levels, the flow is deleted via mlx5e_tc_del_flow(), and mlx5e_tc_del_flow() is acquiring ESW devcom lock without condition. In addition, in case of peer_flow, __mlx5e_add_fdb_flow() is called while holding ESW devcom comp lock. This results in an AA deadlock. To fix this, introduce a new PEER flag that is set on flows created as peer flows (the duplicate flows on peer devices), and check it in mlx5e_tc_del_flow() before acquiring ESW devcom lock. Lockdep splat: ============================================ WARNING: possible recursive locking detected ============================================ Possible unsafe locking scenario: CPU0 ---- lock(&comp->lock_key#2); lock(&comp->lock_key#2); *** DEADLOCK *** Call Trace: <TASK> dump_stack_lvl+0x69/0xa0 print_deadlock_bug.cold+0xbd/0xca __lock_acquire+0x1671/0x2ec0 lock_acquire+0x10e/0x2e0 down_read+0x95/0x430 mlx5_devcom_for_each_peer_begin+0x4e/0xe0 [mlx5_core] mlx5e_tc_del_flow+0x11d/0xa70 [mlx5_core] mlx5e_flow_put+0x99/0x100 [mlx5_core] __mlx5e_add_fdb_flow+0x409/0xf00 [mlx5_core] mlx5e_configure_flower+0x2a86/0x4100 [mlx5_core] mlx5e_rep_setup_tc_cls_flower+0x12f/0x1b0 [mlx5_core] mlx5e_rep_setup_tc_cb+0x153/0x750 [mlx5_core] tc_setup_cb_add+0x1dc/0x470 fl_change+0x2f4d/0x626d [cls_flower] tc_new_tfilter+0x79b/0x2310 rtnetlink_rcv_msg+0x778/0xad0 do_syscall_64+0x70/0x960 entry_SYSCALL_64_after_hwframe+0x4b/0x53 </TASK>

References

European references

CERT-FR advisories

Affected products

ProductVersions
Linux · Linuxaffected 04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d < ead5145d290a918b7c3c3141a64b3f827a9e1b6b ; affected 04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d < 607adbda01053abf5f93e322fe39325da8828cb8 ; affected 04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d < 585df8643081e6f616579bc52cd49ac823a57c82 ; affected 04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d < ff9e7d5e3500be389ce7a0e46db3a77149830bc9 ; affected 04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d < 7165fe321c61ec138850c02f030f274797761f5f ; affected 04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d < 6ddfba2ea98db21b001e0e5c472499156224650c
Linux · Linuxaffected 5.0 ; unaffected 0 < 5.0 ; unaffected 6.1.191 ≤ 6.1.* ; unaffected 6.6.152 ≤ 6.6.* ; unaffected 6.12.104 ≤ 6.12.* ; unaffected 6.18.45 ≤ 6.18.*

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD