Description
In the Linux kernel, the following vulnerability has been resolved:
IB/mlx5: Fix potential deadlock in MR deregistration
The issue arises when kzalloc() is invoked while holding umem_mutex or
any other lock acquired under umem_mutex. This is problematic because
kzalloc() can trigger fs_reclaim_aqcuire(), which may, in turn, invoke
mmu_notifier_invalidate_range_start(). This function can lead to
mlx5_ib_invalidate_range(), which attempts to acquire umem_mutex again,
resulting in a deadlock.
The problematic flow:
CPU0 | CPU1
---------------------------------------|------------------------------------------------
mlx5_ib_dereg_mr() |
→ revoke_mr() |
→ mutex_lock(&umem_odp->umem_mutex) |
| mlx5_mkey_cache_init()
| → mutex_lock(&dev->cache.rb_lock)
| → mlx5r_cache_create_ent_locked()
| → kzalloc(GFP_KERNEL)
| → fs_reclaim()
| → mmu_notifier_invalidate_range_start()
| → mlx5_ib_invalidate_range()
| → mutex_lock(&umem_odp->umem_mutex)
→ cache_ent_find_and_store() |
→ mutex_lock(&dev->cache.rb_lock) |
Additionally, when kzalloc() is called from within
cache_ent_find_and_store(), we encounter the same deadlock due to
re-acquisition of umem_mutex.
Solve by releasing umem_mutex in dereg_mr() after umr_revoke_mr()
and before acquiring rb_lock. This ensures that we don't hold
umem_mutex while performing memory allocations that could trigger
the reclaim path.
This change prevents the deadlock by ensuring proper lock ordering and
avoiding holding locks during memory allocation operations that could
trigger the reclaim path.
The following lockdep warning demonstrates the deadlock:
python3/20557 is trying to acquire lock:
ffff888387542128 (&umem_odp->umem_mutex){+.+.}-{4:4}, at:
mlx5_ib_invalidate_range+0x5b/0x550 [mlx5_ib]
but task is already holding lock:
ffffffff82f6b840 (mmu_notifier_invalidate_range_start){+.+.}-{0:0}, at:
unmap_vmas+0x7b/0x1a0
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #3 (mmu_notifier_invalidate_range_start){+.+.}-{0:0}:
fs_reclaim_acquire+0x60/0xd0
mem_cgroup_css_alloc+0x6f/0x9b0
cgroup_init_subsys+0xa4/0x240
cgroup_init+0x1c8/0x510
start_kernel+0x747/0x760
x86_64_start_reservations+0x25/0x30
x86_64_start_kernel+0x73/0x80
common_startup_64+0x129/0x138
-> #2 (fs_reclaim){+.+.}-{0:0}:
fs_reclaim_acquire+0x91/0xd0
__kmalloc_cache_noprof+0x4d/0x4c0
mlx5r_cache_create_ent_locked+0x75/0x620 [mlx5_ib]
mlx5_mkey_cache_init+0x186/0x360 [mlx5_ib]
mlx5_ib_stage_post_ib_reg_umr_init+0x3c/0x60 [mlx5_ib]
__mlx5_ib_add+0x4b/0x190 [mlx5_ib]
mlx5r_probe+0xd9/0x320 [mlx5_ib]
auxiliary_bus_probe+0x42/0x70
really_probe+0xdb/0x360
__driver_probe_device+0x8f/0x130
driver_probe_device+0x1f/0xb0
__driver_attach+0xd4/0x1f0
bus_for_each_dev+0x79/0xd0
bus_add_driver+0xf0/0x200
driver_register+0x6e/0xc0
__auxiliary_driver_register+0x6a/0xc0
do_one_initcall+0x5e/0x390
do_init_module+0x88/0x240
init_module_from_file+0x85/0xc0
idempotent_init_module+0x104/0x300
__x64_sys_finit_module+0x68/0xc0
do_syscall_64+0x6d/0x140
entry_SYSCALL_64_after_hwframe+0x4b/0x53
-> #1 (&dev->cache.rb_lock){+.+.}-{4:4}:
__mutex_lock+0x98/0xf10
__mlx5_ib_dereg_mr+0x6f2/0x890 [mlx5_ib]
mlx5_ib_dereg_mr+0x21/0x110 [mlx5_ib]
ib_dereg_mr_user+0x85/0x1f0 [ib_core]
---truncated---
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 6.12.14 – < 6.12.37, 6.1.191 – < 6.2, 6.13.3 – < 6.14, 6.14 | 6.12.37 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 6.12.37-1 | — |
| Debian 13 | linux | 6.12.37-1 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Nvidia-BlueField 24.04 LTS | linux-bluefield | 6.8.0-1016.20 | — |
| Ubuntu 25.10 | linux-azure-fde | No fix yet | — |
| Ubuntu 24.04 LTS | linux | 6.8.0-100.100 | USN-8028-1 |
| Ubuntu 24.04 LTS | linux-aws +1 | 6.8.0-1046.49 | USN-8028-5 |
| Ubuntu 24.04 LTS | linux-aws-6.14 +1 | 6.14.0-1015.15~24.04.1 | USN-7833-3, USN-7833-1 |
| Ubuntu 24.04 LTS | linux-azure | 6.8.0-1046.52 | USN-8074-1 |
| Ubuntu 24.04 LTS | linux-azure-6.14 | 6.14.0-1014.14~24.04.1 | USN-7834-1 |
| Ubuntu 24.04 LTS | linux-azure-fde | 6.8.0-1046.53 | — |
| Ubuntu 24.04 LTS | linux-azure-nvidia | 6.8.0-1039.42 | — |
| Ubuntu 24.04 LTS | linux-azure-nvidia-6.14 | 6.14.0-1007.7 | USN-7834-1 |
| Ubuntu 24.04 LTS | linux-gcp | 6.8.0-1047.50 | USN-8031-3 |
| Ubuntu 24.04 LTS | linux-gcp-6.14 | 6.14.0-1018.19~24.04.1 | USN-7833-4 |
| Ubuntu 24.04 LTS | linux-gke | 6.8.0-1043.48 | USN-8031-3 |
| Ubuntu 24.04 LTS | linux-gkeop | 6.8.0-1030.33 | USN-8028-5 |
| Ubuntu 24.04 LTS | linux-hwe-6.14 | 6.14.0-34.34~24.04.1 | USN-7856-1 |
| Ubuntu 24.04 LTS | linux-ibm | 6.8.0-1044.44 | USN-8028-8 |
| Ubuntu 24.04 LTS | linux-intel +10 | No fix yet | — |
| Ubuntu 24.04 LTS | linux-lowlatency | 6.8.0-100.100.1 | USN-8052-1 |
| Ubuntu 24.04 LTS | linux-nvidia-lowlatency | 6.8.0-1046.49.1 | USN-8028-7 |
| Ubuntu 24.04 LTS | linux-nvidia-tegra | 6.8.0-1020.20 | — |
| Ubuntu 24.04 LTS | linux-oem-6.14 | 6.14.0-1014.14 | USN-7833-1 |
| Ubuntu 24.04 LTS | linux-oracle | 6.8.0-1043.44 | USN-8028-5 |
| Ubuntu 24.04 LTS | linux-raspi | 6.8.0-1047.51 | USN-8028-1 |
| Ubuntu 24.04 LTS | linux-riscv-6.14 | 6.14.0-34.34.1~24.04.1 | — |
| Ubuntu 24.04 LTS | linux-xilinx | 6.8.0-1023.24 | USN-8052-2 |
| Ubuntu 22.04 LTS | linux-aws-6.8 +1 | 6.8.0-1046.49~22.04.1 | USN-8028-5 |
| Ubuntu 22.04 LTS | linux-azure-6.8 | 6.8.0-1051.57~22.04.1 | USN-8126-1 |
| Ubuntu 22.04 LTS | linux-azure-fde-6.8 | 6.8.0-1046.53~22.04.1 | — |
| Ubuntu 22.04 LTS | linux-gcp-6.8 | 6.8.0-1047.50~22.04.2 | USN-8031-1 |
| Ubuntu 22.04 LTS | linux-hwe-6.8 +1 | 6.8.0-100.100~22.04.1 | USN-8028-6 |
| Ubuntu 22.04 LTS | linux-ibm-6.8 | 6.8.0-1044.44~22.04.1 | USN-8028-8 |
| Ubuntu 22.04 LTS | linux-lowlatency-hwe-6.8 | 6.8.0-100.100.1~22.04.1 | USN-8028-6 |
| Ubuntu 22.04 LTS | linux-oracle-6.8 | 6.8.0-1043.44~22.04.1 | USN-8028-5 |
| Ubuntu 22.04 LTS | linux-riscv +32 | No fix yet | — |
| Ubuntu 20.04 LTS | linux-gke +28 | No fix yet | — |
Show 5 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
| Ubuntu Pro Realtime 24.04 LTS | linux-raspi-realtime | 6.8.0-2037.38 | USN-8028-3 |
| Ubuntu Pro Realtime 24.04 LTS | linux-realtime | 6.8.1-1041.42 | USN-8028-3 |
| Ubuntu Pro Realtime 24.04 LTS | linux-realtime-6.14 | 6.14.0-1014.14~24.04.1 | USN-7833-2 |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime-6.8 | 6.8.1-1041.42~22.04.1 | USN-8028-2 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-aws-fips | 6.8.0-1046.49+fips1 | USN-8028-4 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-azure-fips | 6.8.0-1046.52+fips1 | USN-8074-2 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-fips | 6.8.0-100.100+fips1 | USN-8028-4 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-gcp-fips | 6.8.0-1047.50+fips1 | USN-8031-2 |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP7 | kernel-64kb +5 | 6.4.0-150700.53.11.1 | SUSE-SU-2025:02997-1 |
| SLES 15 SP7 | kernel-azure +2 | 6.4.0-150700.20.11.1 | SUSE-SU-2025:03011-1 |
| SLES 15 SP7 | kernel-default-base | 6.4.0-150700.53.11.1.150700.17.9.4 | SUSE-SU-2025:02997-1 |
| SLES 15 SP7 | kernel-docs | 6.4.0-150700.53.11.3 | SUSE-SU-2025:02997-1 |
| SLES 15 SP6 | kernel-64kb +6 | 6.4.0-150600.23.65.1 | SUSE-SU-2025:02996-1 |
| SLES 15 SP6 | kernel-azure +2 | 6.4.0-150600.8.48.1 | SUSE-SU-2025:02969-1 |
| SLES 15 SP6 | kernel-coco +3 | 6.4.0-15061.28.coco15sp6.1 | SUSE-SU-2025:02923-1 |
| SLES 15 SP6 | kernel-default-base | 6.4.0-150600.23.65.1.150600.12.28.4 | SUSE-SU-2025:02996-1 |
Show 9 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 16.0 | kernel-64kb +7 | 6.12.0-160000.6.1 | SUSE-SU-2025:21139-1 |
| SLES for SAP 16.0 | kernel-default-base | 6.12.0-160000.6.1.160000.2.4 | SUSE-SU-2025:21139-1 |
| SLES 16.0 | kernel-64kb +7 | 6.12.0-160000.6.1 | SUSE-SU-2025:21179-1, SUSE-SU-2025:21139-1 |
| SLES 16.0 | kernel-default-base | 6.12.0-160000.6.1.160000.2.4 | SUSE-SU-2025:21139-1 |
| SLE Micro 6.2 | kernel-default-base | 6.12.0-160000.6.1.160000.2.4 | SUSE-SU-2025:21074-1 |
| SLE Micro 6.2 | kernel-rt +5 | 6.12.0-160000.6.1 | SUSE-SU-2026:20560-1, SUSE-SU-2025:21074-1 |
| SLE Micro 6.1 | kernel-default-base | 6.4.0-32.1.21.10 | SUSE-SU-2025:20602-1 |
| SLE Micro 6.1 | kernel-rt +1 | 6.4.0-35.1 | SUSE-SU-2025:20601-1 |
| SLE Micro 6.1 | kernel-source +2 | 6.4.0-32.1 | SUSE-SU-2025:20602-1 |
| SLE Micro 6.0 | kernel-default-base | 6.4.0-32.1.21.10 | SUSE-SU-2025:20586-1 |
| SLE Micro 6.0 | kernel-rt +1 | 6.4.0-35.1 | SUSE-SU-2025:20577-1 |
| SLE Micro 6.0 | kernel-source +2 | 6.4.0-32.1 | SUSE-SU-2025:20586-1 |
| SLE Live Patching 15 SP7 | kernel-default | 6.4.0-150700.53.11.1 | SUSE-SU-2025:02997-1 |
| SLE Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7-RT_Update_3 | 1-150700.1.5.1 | SUSE-SU-2025:02853-1 |
| SLE Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7_Update_3 | 1-150700.15.3.4 | SUSE-SU-2025:02997-1 |
| SLE Live Patching 15 SP6 | kernel-default | 6.4.0-150600.23.65.1 | SUSE-SU-2025:02996-1 |
| SLE Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6-RT_Update_14 | 1-150600.1.5.1 | SUSE-SU-2025:03023-1 |
| SLE Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6_Update_14 | 1-150600.13.3.4 | SUSE-SU-2025:02996-1 |
| SUSE Real Time Module 15 SP7 | kernel-rt +2 | 6.4.0-150700.7.13.1 | SUSE-SU-2025:02853-1 |
| SUSE Real Time Module 15 SP6 | kernel-rt +3 | 6.4.0-150600.10.49.1 | SUSE-SU-2025:03023-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Leap 16.0 | kernel-default-base | 6.12.0-160000.6.1.160000.2.4 | openSUSE-SU-2025:20081-1 |
| openSUSE Leap 16.0 | kernel-rt +10 | 6.12.0-160000.6.1 | openSUSE-SU-2025:20081-1 |
| openSUSE Leap 15.6 | dtb-aarch64 +10 | 6.4.0-150600.23.65.1 | SUSE-SU-2025:02996-1 |
| openSUSE Leap 15.6 | kernel-azure +2 | 6.4.0-150600.8.48.1 | SUSE-SU-2025:02969-1 |
| openSUSE Leap 15.6 | kernel-default-base | 6.4.0-150600.23.65.1.150600.12.28.4 | SUSE-SU-2025:02996-1 |
| openSUSE Leap 15.6 | kernel-rt +3 | 6.4.0-150600.10.49.1 | SUSE-SU-2025:03023-1 |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2023 | kernel-livepatch-6.12.37-61.105 | 1:1.0-0.amzn2023 | ALAS2023-2025-1130 |
| Amazon Linux 2023 | perf6.12 +14 | 1:6.12.37-61.105.amzn2023 | ALAS2023-2025-1130 |
Oracle Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Oracle Linux 9 | kernel-uek +34 | 6.12.0-103.40.4.1.el10uek | ELSA-2025-20551 |
Advisories 41
- WID-SEC-2025-1653 Linux Kernel: Mehrere Schwachstellen BSI CERT-Bund (WID) · Nov 12, 2026
- USN-8028-5 linux-aws, linux-aws-6.8, linux-gkeop, linux-nvidia, linux-nvidia-6.8, linux-oracle, linux-oracle-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8126-1 linux-azure-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-8 linux-ibm, linux-ibm-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-6 linux-hwe-6.8, linux-lowlatency-hwe-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8052-1 linux-lowlatency vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8052-2 linux-xilinx vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8074-1 linux-azure vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8074-2 linux-azure-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8031-3 linux-gcp, linux-gke vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-1 linux, linux-raspi vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-4 linux-aws-fips, linux-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-3 linux-realtime, linux-raspi-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-2 linux-realtime-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-7 linux-nvidia-lowlatency vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8031-2 linux-gcp-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8031-1 linux-gcp-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7833-2 linux-realtime-6.14 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7833-1 linux, linux-aws, linux-gcp, linux-oem-6.14, linux-oracle, linux-oracle-6.14, linux-raspi, linux-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7834-1 linux-azure, linux-azure-6.14, linux-azure-nvidia-6.14 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7833-4 linux-gcp-6.14 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7833-3 linux-aws-6.14 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- SUSE-SU-2026:20560-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Jul 9, 2026
- USN-7856-1 linux-hwe-6.14 vulnerabilities Ubuntu Security Notices (USN) · Jun 3, 2026
- openSUSE-SU-2025:20081-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:21179-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:21139-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:21074-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:20601-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:20602-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:02997-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:20586-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:20577-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:03011-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:02996-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:02853-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:02923-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:02969-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:03023-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- ALAS2023-2025-1130 Important: kernel6.12 security update (Amazon Linux 2023) Amazon Linux Security Center (ALAS) · Dec 19, 2025
- ELSA-2025-20551 Important: Unbreakable Enterprise kernel security update (Oracle Linux 9) Oracle Linux Security Advisories (ELSA) · Sep 8, 2025