Monitor vulnerabilities like this one.
Sign up free to get alerted when software you use is affected.
Linux Kernel: Potential Deadlock in File System Access
UBUNTU-CVE-2026-23199
Summary
The Linux kernel has a vulnerability that could cause a deadlock when accessing file system data. This could happen if two processes try to access the same file system at the same time, causing the system to freeze. To fix this, the kernel has been updated to avoid fetching certain information while holding onto a lock, preventing the deadlock.
What to do
No fix is available yet. Check with your software vendor for updates.
Affected software
| Vendor | Product | Affected versions | Fix available |
|---|---|---|---|
| canonical | linux-hwe-edge | All versions | – |
| canonical | linux-aws-5.0 | All versions | – |
| canonical | linux-aws-5.3 | All versions | – |
| canonical | linux-azure | All versions | – |
| canonical | linux-azure-5.3 | All versions | – |
| canonical | linux-azure-edge | All versions | – |
| canonical | linux-gcp | All versions | – |
| canonical | linux-gcp-5.3 | All versions | – |
| canonical | linux-gke-4.15 | All versions | – |
| canonical | linux-gke-5.4 | All versions | – |
| canonical | linux-gkeop-5.4 | All versions | – |
| canonical | linux-hwe | All versions | – |
| canonical | linux-hwe-edge | All versions | – |
| canonical | linux-oem | All versions | – |
| canonical | linux-oracle-5.0 | All versions | – |
| canonical | linux-oracle-5.3 | All versions | – |
| canonical | linux-aws-5.11 | All versions | – |
| canonical | linux-aws-5.13 | All versions | – |
| canonical | linux-aws-5.8 | All versions | – |
| canonical | linux-azure-5.11 | All versions | – |
| canonical | linux-azure-5.13 | All versions | – |
| canonical | linux-azure-5.8 | All versions | – |
| canonical | linux-azure-fde | All versions | – |
| canonical | linux-gcp-5.11 | All versions | – |
| canonical | linux-gcp-5.13 | All versions | – |
| canonical | linux-gcp-5.8 | All versions | – |
| canonical | linux-gke | All versions | – |
| canonical | linux-gke-5.15 | All versions | – |
| canonical | linux-gkeop | All versions | – |
| canonical | linux-gkeop-5.15 | All versions | – |
| canonical | linux-hwe-5.11 | All versions | – |
| canonical | linux-hwe-5.13 | All versions | – |
| canonical | linux-hwe-5.8 | All versions | – |
| canonical | linux-intel-5.13 | All versions | – |
| canonical | linux-oem-5.10 | All versions | – |
| canonical | linux-oem-5.13 | All versions | – |
| canonical | linux-oem-5.14 | All versions | – |
| canonical | linux-oem-5.6 | All versions | – |
| canonical | linux-oracle-5.11 | All versions | – |
| canonical | linux-oracle-5.13 | All versions | – |
| canonical | linux-oracle-5.8 | All versions | – |
| canonical | linux-raspi2 | All versions | – |
| canonical | linux-riscv | All versions | – |
| canonical | linux-riscv-5.11 | All versions | – |
| canonical | linux-riscv-5.8 | All versions | – |
| canonical | linux-allwinner-5.19 | All versions | – |
| canonical | linux-aws-5.19 | All versions | – |
| canonical | linux-aws-6.2 | All versions | – |
| canonical | linux-aws-6.5 | All versions | – |
| canonical | linux-azure-5.19 | All versions | – |
| canonical | linux-azure-6.2 | All versions | – |
| canonical | linux-azure-6.5 | All versions | – |
| canonical | linux-azure-fde-5.19 | All versions | – |
| canonical | linux-azure-fde-6.2 | All versions | – |
| canonical | linux-gcp-5.19 | All versions | – |
| canonical | linux-gcp-6.2 | All versions | – |
| canonical | linux-gcp-6.5 | All versions | – |
| canonical | linux-hwe-5.19 | All versions | – |
| canonical | linux-hwe-6.2 | All versions | – |
| canonical | linux-hwe-6.5 | All versions | – |
| canonical | linux-intel-iot-realtime | All versions | – |
| canonical | linux-lowlatency-hwe-5.19 | All versions | – |
| canonical | linux-lowlatency-hwe-6.2 | All versions | – |
| canonical | linux-lowlatency-hwe-6.5 | All versions | – |
| canonical | linux-nvidia-6.2 | All versions | – |
| canonical | linux-nvidia-6.5 | All versions | – |
| canonical | linux-oem-5.17 | All versions | – |
| canonical | linux-oem-6.0 | All versions | – |
| canonical | linux-oem-6.1 | All versions | – |
| canonical | linux-oem-6.5 | All versions | – |
| canonical | linux-oracle-6.5 | All versions | – |
| canonical | linux-realtime | All versions | – |
| canonical | linux-riscv | All versions | – |
| canonical | linux-riscv-5.19 | All versions | – |
| canonical | linux-riscv-6.5 | All versions | – |
| canonical | linux-starfive-5.19 | All versions | – |
| canonical | linux-starfive-6.2 | All versions | – |
| canonical | linux-starfive-6.5 | All versions | – |
| canonical | linux-aws-6.14 | All versions | – |
| canonical | linux-aws-6.17 | All versions | – |
| canonical | linux-azure-6.11 | All versions | – |
| canonical | linux-azure-6.14 | All versions | – |
| canonical | linux-azure-6.17 | All versions | – |
| canonical | linux-azure-fde-6.14 | All versions | – |
| canonical | linux-azure-fde-6.17 | All versions | – |
| canonical | linux-azure-nvidia-6.14 | All versions | – |
| canonical | linux-gcp-6.11 | All versions | – |
| canonical | linux-gcp-6.14 | All versions | – |
| canonical | linux-gcp-6.17 | All versions | – |
| canonical | linux-hwe-6.11 | All versions | – |
| canonical | linux-hwe-6.14 | All versions | – |
| canonical | linux-hwe-6.17 | All versions | – |
| canonical | linux-lowlatency-hwe-6.11 | All versions | – |
| canonical | linux-nvidia-6.11 | All versions | – |
| canonical | linux-oem-6.11 | All versions | – |
| canonical | linux-oem-6.14 | All versions | – |
| canonical | linux-oem-6.17 | All versions | – |
| canonical | linux-oem-6.8 | All versions | – |
| canonical | linux-oracle-6.14 | All versions | – |
| canonical | linux-oracle-6.17 | All versions | – |
| canonical | linux-raspi-realtime | All versions | – |
| canonical | linux-realtime | All versions | – |
| canonical | linux-riscv | All versions | – |
| canonical | linux-riscv-6.14 | All versions | – |
| canonical | linux-riscv-6.17 | All versions | – |
| canonical | linux-realtime-6.14 | All versions | – |
| canonical | linux | All versions | – |
| canonical | linux-aws | All versions | – |
| canonical | linux-azure | All versions | – |
| canonical | linux-azure-fde | All versions | – |
| canonical | linux-gcp | All versions | – |
| canonical | linux-oracle | All versions | – |
| canonical | linux-raspi | All versions | – |
| canonical | linux-realtime | All versions | – |
| canonical | linux-riscv | All versions | – |
Original title
In the Linux kernel, the following vulnerability has been resolved: procfs: avoid fetching build ID while holding VMA lock Fix PROCMAP_QUERY to fetch optional build ID only after dropping mmap_lock...
Original description
In the Linux kernel, the following vulnerability has been resolved: procfs: avoid fetching build ID while holding VMA lock Fix PROCMAP_QUERY to fetch optional build ID only after dropping mmap_lock or per-VMA lock, whichever was used to lock VMA under question, to avoid deadlock reported by syzbot: -> #1 (&mm->mmap_lock){++++}-{4:4}: __might_fault+0xed/0x170 _copy_to_iter+0x118/0x1720 copy_page_to_iter+0x12d/0x1e0 filemap_read+0x720/0x10a0 blkdev_read_iter+0x2b5/0x4e0 vfs_read+0x7f4/0xae0 ksys_read+0x12a/0x250 do_syscall_64+0xcb/0xf80 entry_SYSCALL_64_after_hwframe+0x77/0x7f -> #0 (&sb->s_type->i_mutex_key#8){++++}-{4:4}: __lock_acquire+0x1509/0x26d0 lock_acquire+0x185/0x340 down_read+0x98/0x490 blkdev_read_iter+0x2a7/0x4e0 __kernel_read+0x39a/0xa90 freader_fetch+0x1d5/0xa80 __build_id_parse.isra.0+0xea/0x6a0 do_procmap_query+0xd75/0x1050 procfs_procmap_ioctl+0x7a/0xb0 __x64_sys_ioctl+0x18e/0x210 do_syscall_64+0xcb/0xf80 entry_SYSCALL_64_after_hwframe+0x77/0x7f other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- rlock(&mm->mmap_lock); lock(&sb->s_type->i_mutex_key#8); lock(&mm->mmap_lock); rlock(&sb->s_type->i_mutex_key#8); *** DEADLOCK *** This seems to be exacerbated (as we haven't seen these syzbot reports before that) by the recent: 777a8560fd29 ("lib/buildid: use __kernel_read() for sleepable context") To make this safe, we need to grab file refcount while VMA is still locked, but other than that everything is pretty straightforward. Internal build_id_parse() API assumes VMA is passed, but it only needs the underlying file reference, so just add another variant build_id_parse_file() that expects file passed directly. [[email protected]: fix up kerneldoc]
- https://ubuntu.com/security/CVE-2026-23199 Third Party Advisory
- https://www.cve.org/CVERecord?id=CVE-2026-23199 Third Party Advisory
- https://git.kernel.org/linus/b5cbacd7f86f4f62b8813688c8e73be94e8e1951 Third Party Advisory
- https://git.kernel.org/stable/c/b5cbacd7f86f4f62b8813688c8e73be94e8e1951 Third Party Advisory
- https://git.kernel.org/stable/c/b9b97e6aeb534315f9646b2090d1a5024c6a4e82 Third Party Advisory
- https://git.kernel.org/stable/c/cbc03ce3e6ce7e21214c3f02218213574c1a2d08 Third Party Advisory
Published: 14 Feb 2026 · Updated: 13 Mar 2026 · First seen: 9 Mar 2026