Skip to content
Fencer Vulns
medium 5.5

CVE-2024-27014 json

net/mlx5e: Prevent deadlock while disabling aRFS

published 2024-05-01 2 y ago modified 2026-06-17 4 mo ago also EUVD-2024-24276

cvss
5.5
version 3.1, NVD
cisa kev
Not listed
not in CISA's catalog
epss
0.2%
EPSS 0.2% chance of exploitation in 30 days, percentile 7%
public exploits
0
none known

Summary

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

net/mlx5e: Prevent deadlock while disabling aRFS

When disabling aRFS under the `priv->state_lock`, any scheduled aRFS works are canceled using the `cancel_work_sync` function, which waits for the work to end if it has already started. However, while waiting for the work handler, the handler will try to acquire the `state_lock` which is already acquired.

The worker acquires the lock to delete the rules if the state is down, which is not the worker's responsibility since disabling aRFS deletes the rules.

Add an aRFS state variable, which indicates whether the aRFS is enabled and prevent adding rules when the aRFS is disabled.

Kernel log:

====================================================== WARNING: possible circular locking dependency detected 6.7.0-rc4_net_next_mlx5_5483eb2 #1 Tainted: G I ------------------------------------------------------ ethtool/386089 is trying to acquire lock: ffff88810f21ce68 ((work_completion)(&rule->arfs_work)){+.+.}-{0:0}, at: __flush_work+0x74/0x4e0

but task is already holding lock: ffff8884a1808cc0 (&priv->state_lock){+.+.}-{3:3}, at: mlx5e_ethtool_set_channels+0x53/0x200 [mlx5_core]

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-> #1 (&priv->state_lock){+.+.}-{3:3}: __mutex_lock+0x80/0xc90 arfs_handle_work+0x4b/0x3b0 [mlx5_core] process_one_work+0x1dc/0x4a0 worker_thread+0x1bf/0x3c0 kthread+0xd7/0x100 ret_from_fork+0x2d/0x50 ret_from_fork_asm+0x11/0x20

-> #0 ((work_completion)(&rule->arfs_work)){+.+.}-{0:0}: __lock_acquire+0x17b4/0x2c80 lock_acquire+0xd0/0x2b0 __flush_work+0x7a/0x4e0 __cancel_work_timer+0x131/0x1c0 arfs_del_rules+0x143/0x1e0 [mlx5_core] mlx5e_arfs_disable+0x1b/0x30 [mlx5_core] mlx5e_ethtool_set_channels+0xcb/0x200 [mlx5_core] ethnl_set_channels+0x28f/0x3b0 ethnl_default_set_doit+0xec/0x240 genl_family_rcv_msg_doit+0xd0/0x120 genl_rcv_msg+0x188/0x2c0 netlink_rcv_skb+0x54/0x100 genl_rcv+0x24/0x40 netlink_unicast+0x1a1/0x270 netlink_sendmsg+0x214/0x460 __sock_sendmsg+0x38/0x60 __sys_sendto+0x113/0x170 __x64_sys_sendto+0x20/0x30 do_syscall_64+0x40/0xe0 entry_SYSCALL_64_after_hwframe+0x46/0x4e

other info that might help us debug this:

Possible unsafe locking scenario:

CPU0 CPU1 ---- ---- lock(&priv->state_lock); lock((work_completion)(&rule->arfs_work)); lock(&priv->state_lock); lock((work_completion)(&rule->arfs_work));

*** DEADLOCK ***

3 locks held by ethtool/386089: #0: ffffffff82ea7210 (cb_lock){++++}-{3:3}, at: genl_rcv+0x15/0x40 #1: ffffffff82e94c88 (rtnl_mutex){+.+.}-{3:3}, at: ethnl_default_set_doit+0xd3/0x240 #2: ffff8884a1808cc0 (&priv->state_lock){+.+.}-{3:3}, at: mlx5e_ethtool_set_channels+0x53/0x200 [mlx5_core]

stack backtrace: CPU: 15 PID: 386089 Comm: ethtool Tainted: G I 6.7.0-rc4_net_next_mlx5_5483eb2 #1 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014 Call Trace: <TASK> dump_stack_lvl+0x60/0xa0 check_noncircular+0x144/0x160 __lock_acquire+0x17b4/0x2c80 lock_acquire+0xd0/0x2b0 ? __flush_work+0x74/0x4e0 ? save_trace+0x3e/0x360 ? __flush_work+0x74/0x4e0 __flush_work+0x7a/0x4e0 ? __flush_work+0x74/0x4e0 ? __lock_acquire+0xa78/0x2c80 ? lock_acquire+0xd0/0x2b0 ? mark_held_locks+0x49/0x70 __cancel_work_timer+0x131/0x1c0 ? mark_held_locks+0x49/0x70 arfs_del_rules+0x143/0x1e0 [mlx5_core] mlx5e_arfs_disable+0x1b/0x30 [mlx5_core] mlx5e_ethtool_set_channels+0xcb/0x200 [mlx5_core] ethnl_set_channels+0x28f/0x3b0 ethnl_default_set_doit+0xec/0x240 genl_family_rcv_msg_doit+0xd0/0x120 genl_rcv_msg+0x188/0x2c0 ? ethn ---truncated---

Patch / fix

  • Linux Linux 6.1.88, 6.6.29, 6.8.8, 6.9
  • linux Debian 12 6.1.90-1
  • linux Debian 14, Debian 13 6.8.9-1

debian advisories DEBIAN-CVE-2024-27014

  • linux Ubuntu 24.04 LTS 6.8.0-38.38
  • linux-aws Ubuntu 24.04 LTS 6.8.0-1011.12
  • linux-gcp Ubuntu 24.04 LTS 6.8.0-1010.11
  • linux-gke Ubuntu 24.04 LTS 6.8.0-1006.9
  • linux-ibm Ubuntu 24.04 LTS 6.8.0-1008.8
  • linux-azure Ubuntu 24.04 LTS 6.8.0-1010.10
  • linux-intel Ubuntu 24.04 LTS 6.8.0-1007.14
  • linux-raspi Ubuntu 24.04 LTS 6.8.0-1007.7

ubuntu advisories UBUNTU-CVE-2024-27014

Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

  • kernel RHEL 9 5.14.0-503.11.1.el9_5
  • rv RHEL 9 5.14.0-503.11.1.el9_5
  • perf RHEL 9 5.14.0-503.11.1.el9_5
  • rtla RHEL 9 5.14.0-503.11.1.el9_5
  • bpftool RHEL 9 7.4.0-503.11.1.el9_5
  • libperf RHEL 9 5.14.0-503.11.1.el9_5
  • kernel-rt RHEL 9 5.14.0-503.11.1.el9_5
  • kernel-64k RHEL 9 5.14.0-503.11.1.el9_5

red hat advisories RHSA-2025:3021RHSA-2024:9315RHSA-2024:3627RHSA-2024:3618

  • kernel-rt Linux Micro 6.0 6.4.0-9.1
  • kernel-source-rt Linux Micro 6.0 6.4.0-9.1
  • kernel-source Linux Micro 6.0 6.4.0-18.1
  • kernel-default Linux Micro 6.0 6.4.0-18.1
  • kernel-kvmsmall Linux Micro 6.0 6.4.0-18.1
  • kernel-default-base Linux Micro 6.0 6.4.0-17.1.1.51
  • kernel-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.5.1
  • kernel-syms-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.5.1

suse advisories SUSE-SU-2025:20028-1SUSE-SU-2025:20008-1SUSE-SU-2024:2973-1SUSE-SU-2024:2203-1SUSE-SU-2024:2135-1SUSE-SU-2024:1870-1

  • kernel AlmaLinux 8 4.18.0-553.5.1.el8_10
  • perf AlmaLinux 8 4.18.0-553.5.1.el8_10
  • bpftool AlmaLinux 8 4.18.0-553.5.1.el8_10
  • kernel-core AlmaLinux 8 4.18.0-553.5.1.el8_10
  • kernel-tools AlmaLinux 8 4.18.0-553.5.1.el8_10
  • python3-perf AlmaLinux 8 4.18.0-553.5.1.el8_10
  • kernel-modules AlmaLinux 8 4.18.0-553.5.1.el8_10
  • kernel-zfcpdump AlmaLinux 8 4.18.0-553.5.1.el8_10

almalinux advisories ALSA-2024:3618ALSA-2024:3627

  • kernel-rt Rocky Linux 8 4.18.0-553.5.1.rt7.346.el8_10
  • kernel Rocky Linux 8 4.18.0-553.5.1.el8_10

rocky linux advisories RLSA-2024:3627RLSA-2024:3618

  • kernel CBL-Mariner 2.0 5.15.158.1-1

azure linux advisories AZL-42229

Azure Linux vulnerability data, Copyright (c) Microsoft Corporation, from https://github.com/microsoft/AzureLinuxVulnerabilityData via OSV, under the MIT licence; changed: normalised to fixed package versions per release. MIT

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2024-27014 updated cvss 5.5

kernel: net/mlx5e: Prevent deadlock while disabling aRFS

  • Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more
    affected: no fix planned “Out of support scope”
  • Red Hat CodeReady Linux Builder (v. 9) libperf 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-s390x 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-x86_64 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-aarch64 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-ppc64le 5.14.0-503.11.1.el9_5
    fixed: vendor fix RHSA-2024:9315
  • Red Hat CodeReady Linux Builder EUS (v.9.4) libperf 5.14.0-427.60.1.el9_4, kernel-debuginfo-common-s390x 5.14.0-427.60.1.el9_4, kernel-debuginfo-common-x86_64 5.14.0-427.60.1.el9_4, kernel-debuginfo-common-aarch64 5.14.0-427.60.1.el9_4, kernel-debuginfo-common-ppc64le 5.14.0-427.60.1.el9_4
    fixed: vendor fix RHSA-2025:3021
  • Red Hat Enterprise Linux AppStream (v. 9) rv 5.14.0-503.11.1.el9_5, perf 5.14.0-503.11.1.el9_5, rtla 5.14.0-503.11.1.el9_5, kernel-devel-matched 5.14.0-503.11.1.el9_5, kernel-64k-devel-matched 5.14.0-503.11.1.el9_5, kernel-debug-devel-matched 5.14.0-503.11.1.el9_5, +6 more
    fixed: vendor fix RHSA-2024:9315
  • Red Hat Enterprise Linux AppStream EUS (v.9.4) rv 5.14.0-427.60.1.el9_4, perf 5.14.0-427.60.1.el9_4, rtla 5.14.0-427.60.1.el9_4, kernel-devel-matched 5.14.0-427.60.1.el9_4, kernel-64k-devel-matched 5.14.0-427.60.1.el9_4, kernel-debug-devel-matched 5.14.0-427.60.1.el9_4, +6 more
    fixed: vendor fix RHSA-2025:3021
  • Red Hat Enterprise Linux BaseOS (v. 8) perf 4.18.0-553.5.1.el8_10, kernel 4.18.0-553.5.1.el8_10, bpftool 4.18.0-553.5.1.el8_10, kernel-core 4.18.0-553.5.1.el8_10, kernel-tools 4.18.0-553.5.1.el8_10, python3-perf 4.18.0-553.5.1.el8_10, +15 more
    fixed: vendor fix RHSA-2024:3618
  • Red Hat Enterprise Linux BaseOS (v. 9) bpftool 7.4.0-503.11.1.el9_5, kernel 5.14.0-503.11.1.el9_5, kernel-64k 5.14.0-503.11.1.el9_5, kernel-core 5.14.0-503.11.1.el9_5, kernel-tools 5.14.0-503.11.1.el9_5, python3-perf 5.14.0-503.11.1.el9_5, +29 more
    fixed: vendor fix RHSA-2024:9315
  • Red Hat Enterprise Linux BaseOS EUS (v.9.4) bpftool 7.3.0-427.60.1.el9_4, kernel 5.14.0-427.60.1.el9_4, kernel-64k 5.14.0-427.60.1.el9_4, kernel-core 5.14.0-427.60.1.el9_4, kernel-tools 5.14.0-427.60.1.el9_4, python3-perf 5.14.0-427.60.1.el9_4, +28 more
    fixed: vendor fix RHSA-2025:3021
show 8 more
  • Red Hat Enterprise Linux CRB (v. 8) kernel-debuginfo-common-x86_64 4.18.0-553.5.1.el8_10, kernel-debuginfo-common-aarch64 4.18.0-553.5.1.el8_10, kernel-debuginfo-common-ppc64le 4.18.0-553.5.1.el8_10
    fixed: vendor fix RHSA-2024:3618
  • Red Hat Enterprise Linux NFV (v. 8) kernel-rt 4.18.0-553.5.1.rt7.346.el8_10, kernel-rt-kvm 4.18.0-553.5.1.rt7.346.el8_10, kernel-rt-core 4.18.0-553.5.1.rt7.346.el8_10, kernel-rt-modules 4.18.0-553.5.1.rt7.346.el8_10, kernel-rt-debug-kvm 4.18.0-553.5.1.rt7.346.el8_10, kernel-rt-debug-core 4.18.0-553.5.1.rt7.346.el8_10, +4 more
    fixed: vendor fix RHSA-2024:3627
  • Red Hat Enterprise Linux Real Time (v. 9) kernel-rt 5.14.0-503.11.1.el9_5, kernel-rt-core 5.14.0-503.11.1.el9_5, kernel-rt-modules 5.14.0-503.11.1.el9_5, kernel-rt-debug-core 5.14.0-503.11.1.el9_5, kernel-rt-modules-core 5.14.0-503.11.1.el9_5, kernel-rt-debug-modules 5.14.0-503.11.1.el9_5, +4 more
    fixed: vendor fix RHSA-2024:9315
  • Red Hat Enterprise Linux Real Time EUS (v.9.4) kernel-rt 5.14.0-427.60.1.el9_4, kernel-rt-core 5.14.0-427.60.1.el9_4, kernel-rt-modules 5.14.0-427.60.1.el9_4, kernel-rt-debug-core 5.14.0-427.60.1.el9_4, kernel-rt-modules-core 5.14.0-427.60.1.el9_4, kernel-rt-debug-modules 5.14.0-427.60.1.el9_4, +4 more
    fixed: vendor fix RHSA-2025:3021
  • Red Hat Enterprise Linux Real Time for NFV (v. 9) kernel-rt 5.14.0-503.11.1.el9_5, kernel-rt-kvm 5.14.0-503.11.1.el9_5, kernel-rt-core 5.14.0-503.11.1.el9_5, kernel-rt-modules 5.14.0-503.11.1.el9_5, kernel-rt-debug-kvm 5.14.0-503.11.1.el9_5, kernel-rt-debug-core 5.14.0-503.11.1.el9_5, +6 more
    fixed: vendor fix RHSA-2024:9315
  • Red Hat Enterprise Linux Real Time for NFV EUS (v.9.4) kernel-rt 5.14.0-427.60.1.el9_4, kernel-rt-kvm 5.14.0-427.60.1.el9_4, kernel-rt-core 5.14.0-427.60.1.el9_4, kernel-rt-modules 5.14.0-427.60.1.el9_4, kernel-rt-debug-kvm 5.14.0-427.60.1.el9_4, kernel-rt-debug-core 5.14.0-427.60.1.el9_4, +6 more
    fixed: vendor fix RHSA-2025:3021
  • Red Hat Enterprise Linux RT (v. 8) kernel-rt 4.18.0-553.5.1.rt7.346.el8_10, kernel-rt-core 4.18.0-553.5.1.rt7.346.el8_10, kernel-rt-modules 4.18.0-553.5.1.rt7.346.el8_10, kernel-rt-debug-core 4.18.0-553.5.1.rt7.346.el8_10, kernel-rt-debug-modules 4.18.0-553.5.1.rt7.346.el8_10, kernel-rt-modules-extra 4.18.0-553.5.1.rt7.346.el8_10, +2 more
    fixed: vendor fix RHSA-2024:3627
  • Red Hat CodeReady Linux Builder (v. 9) kernel-cross-headers 5.14.0-503.11.1.el9_5 Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux AppStream (v. 9) kernel-headers 5.14.0-503.11.1.el9_5
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
none
Automatable
no
Technical impact
partial
Assessed
2 y ago

Exploit prediction

0.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
NVD 3.1 5.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Affected products

  • Linux Linux

Classification

Weakness
Technology feeds

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.