{"id":"CVE-2026-80739","state":"PUBLISHED","title":"net/mlx5e: TC, Check if flow is PEER before acquiring devcom lock","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet/mlx5e: TC, Check if flow is PEER before acquiring devcom lock\n\nIn case __mlx5e_add_fdb_flow() fails in lower levels, the flow is\ndeleted via mlx5e_tc_del_flow(), and mlx5e_tc_del_flow() is acquiring\nESW devcom lock without condition. In addition, in case of peer_flow,\n__mlx5e_add_fdb_flow() is called while holding ESW devcom comp lock.\nThis results in an AA deadlock.\n\nTo fix this, introduce a new PEER flag that is set on flows created as\npeer flows (the duplicate flows on peer devices), and check it in\nmlx5e_tc_del_flow() before acquiring ESW devcom lock.\n\nLockdep splat:\n============================================\nWARNING: possible recursive locking detected\n============================================\n Possible unsafe locking scenario:\n       CPU0\n       ----\n  lock(&comp->lock_key#2);\n  lock(&comp->lock_key#2);\n *** DEADLOCK ***\nCall Trace:\n <TASK>\n dump_stack_lvl+0x69/0xa0\n print_deadlock_bug.cold+0xbd/0xca\n __lock_acquire+0x1671/0x2ec0\n lock_acquire+0x10e/0x2e0\n down_read+0x95/0x430\n mlx5_devcom_for_each_peer_begin+0x4e/0xe0 [mlx5_core]\n mlx5e_tc_del_flow+0x11d/0xa70 [mlx5_core]\n mlx5e_flow_put+0x99/0x100 [mlx5_core]\n __mlx5e_add_fdb_flow+0x409/0xf00 [mlx5_core]\n mlx5e_configure_flower+0x2a86/0x4100 [mlx5_core]\n mlx5e_rep_setup_tc_cls_flower+0x12f/0x1b0 [mlx5_core]\n mlx5e_rep_setup_tc_cb+0x153/0x750 [mlx5_core]\n tc_setup_cb_add+0x1dc/0x470\n fl_change+0x2f4d/0x626d [cls_flower]\n tc_new_tfilter+0x79b/0x2310\n rtnetlink_rcv_msg+0x778/0xad0\n do_syscall_64+0x70/0x960\n entry_SYSCALL_64_after_hwframe+0x4b/0x53\n </TASK>","publishedAt":"2026-09-03T08:21:53.739Z","updatedAt":"2026-10-30T12:31:03.271Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d","status":"affected","lessThan":"ead5145d290a918b7c3c3141a64b3f827a9e1b6b","versionType":"git"},{"version":"04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d","status":"affected","lessThan":"607adbda01053abf5f93e322fe39325da8828cb8","versionType":"git"},{"version":"04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d","status":"affected","lessThan":"585df8643081e6f616579bc52cd49ac823a57c82","versionType":"git"},{"version":"04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d","status":"affected","lessThan":"ff9e7d5e3500be389ce7a0e46db3a77149830bc9","versionType":"git"},{"version":"04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d","status":"affected","lessThan":"7165fe321c61ec138850c02f030f274797761f5f","versionType":"git"},{"version":"04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d","status":"affected","lessThan":"6ddfba2ea98db21b001e0e5c472499156224650c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/mellanox/mlx5/core/en/tc_priv.h","drivers/net/ethernet/mellanox/mlx5/core/en_tc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.0","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.0","versionType":"semver"},{"version":"6.1.191","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.152","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.104","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.45","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.9","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/mellanox/mlx5/core/en/tc_priv.h","drivers/net/ethernet/mellanox/mlx5/core/en_tc.c"]}],"references":["https://git.kernel.org/stable/c/ead5145d290a918b7c3c3141a64b3f827a9e1b6b","https://git.kernel.org/stable/c/607adbda01053abf5f93e322fe39325da8828cb8","https://git.kernel.org/stable/c/585df8643081e6f616579bc52cd49ac823a57c82","https://git.kernel.org/stable/c/ff9e7d5e3500be389ce7a0e46db3a77149830bc9","https://git.kernel.org/stable/c/7165fe321c61ec138850c02f030f274797761f5f","https://git.kernel.org/stable/c/6ddfba2ea98db21b001e0e5c472499156224650c"],"weaknesses":[],"ingestedAt":"2026-10-30T12:50:04.827Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/80xxx/CVE-2026-80739.json","commit":"1f312381e38164a43607eebab851b151dd16861e","baselineCommit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-80739","state":"PUBLISHED","datePublished":"2026-09-03T08:21:53.739Z","dateUpdated":"2026-10-30T12:31:03.271Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-26T14:34:25.789Z"},"containers":{"cna":{"title":"net/mlx5e: TC, Check if flow is PEER before acquiring devcom lock","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet/mlx5e: TC, Check if flow is PEER before acquiring devcom lock\n\nIn case __mlx5e_add_fdb_flow() fails in lower levels, the flow is\ndeleted via mlx5e_tc_del_flow(), and mlx5e_tc_del_flow() is acquiring\nESW devcom lock without condition. In addition, in case of peer_flow,\n__mlx5e_add_fdb_flow() is called while holding ESW devcom comp lock.\nThis results in an AA deadlock.\n\nTo fix this, introduce a new PEER flag that is set on flows created as\npeer flows (the duplicate flows on peer devices), and check it in\nmlx5e_tc_del_flow() before acquiring ESW devcom lock.\n\nLockdep splat:\n============================================\nWARNING: possible recursive locking detected\n============================================\n Possible unsafe locking scenario:\n       CPU0\n       ----\n  lock(&comp->lock_key#2);\n  lock(&comp->lock_key#2);\n *** DEADLOCK ***\nCall Trace:\n <TASK>\n dump_stack_lvl+0x69/0xa0\n print_deadlock_bug.cold+0xbd/0xca\n __lock_acquire+0x1671/0x2ec0\n lock_acquire+0x10e/0x2e0\n down_read+0x95/0x430\n mlx5_devcom_for_each_peer_begin+0x4e/0xe0 [mlx5_core]\n mlx5e_tc_del_flow+0x11d/0xa70 [mlx5_core]\n mlx5e_flow_put+0x99/0x100 [mlx5_core]\n __mlx5e_add_fdb_flow+0x409/0xf00 [mlx5_core]\n mlx5e_configure_flower+0x2a86/0x4100 [mlx5_core]\n mlx5e_rep_setup_tc_cls_flower+0x12f/0x1b0 [mlx5_core]\n mlx5e_rep_setup_tc_cb+0x153/0x750 [mlx5_core]\n tc_setup_cb_add+0x1dc/0x470\n fl_change+0x2f4d/0x626d [cls_flower]\n tc_new_tfilter+0x79b/0x2310\n rtnetlink_rcv_msg+0x778/0xad0\n do_syscall_64+0x70/0x960\n entry_SYSCALL_64_after_hwframe+0x4b/0x53\n </TASK>"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d","status":"affected","lessThan":"ead5145d290a918b7c3c3141a64b3f827a9e1b6b","versionType":"git"},{"version":"04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d","status":"affected","lessThan":"607adbda01053abf5f93e322fe39325da8828cb8","versionType":"git"},{"version":"04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d","status":"affected","lessThan":"585df8643081e6f616579bc52cd49ac823a57c82","versionType":"git"},{"version":"04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d","status":"affected","lessThan":"ff9e7d5e3500be389ce7a0e46db3a77149830bc9","versionType":"git"},{"version":"04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d","status":"affected","lessThan":"7165fe321c61ec138850c02f030f274797761f5f","versionType":"git"},{"version":"04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d","status":"affected","lessThan":"6ddfba2ea98db21b001e0e5c472499156224650c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/mellanox/mlx5/core/en/tc_priv.h","drivers/net/ethernet/mellanox/mlx5/core/en_tc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.0","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.0","versionType":"semver"},{"version":"6.1.191","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.152","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.104","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.45","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.9","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/mellanox/mlx5/core/en/tc_priv.h","drivers/net/ethernet/mellanox/mlx5/core/en_tc.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/ead5145d290a918b7c3c3141a64b3f827a9e1b6b"},{"url":"https://git.kernel.org/stable/c/607adbda01053abf5f93e322fe39325da8828cb8"},{"url":"https://git.kernel.org/stable/c/585df8643081e6f616579bc52cd49ac823a57c82"},{"url":"https://git.kernel.org/stable/c/ff9e7d5e3500be389ce7a0e46db3a77149830bc9"},{"url":"https://git.kernel.org/stable/c/7165fe321c61ec138850c02f030f274797761f5f"},{"url":"https://git.kernel.org/stable/c/6ddfba2ea98db21b001e0e5c472499156224650c"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-30T12:31:03.271Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.1.191"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.6.152"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.12.104"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.18.45"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"7.1.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}