![]() |
Home ▼ Bookkeeping
Online ▼ Security
Audits ▼
Managed
DNS ▼
About
Order
FAQ
Acceptable Use Policy
Dynamic DNS Clients
Configure Domains Dyanmic DNS Update Password Network
Monitor ▼
Enterprise Package
Advanced Package
Standard Package
Free Trial
FAQ
Price/Feature Summary
Order/Renew
Examples
Configure/Status Alert Profiles | ||
CVE ID: | CVE-2024-27031 |
Description: | In the Linux kernel, the following vulnerability has been resolved:
NFS: Fix nfs_netfs_issue_read() xarray locking for writeback interrupt
The loop inside nfs_netfs_issue_read() currently does not disable
interrupts while iterating through pages in the xarray to submit for
NFS read. This is not safe though since after taking xa_lock, another
page in the mapping could be processed for writeback inside an
interrupt, and deadlock can occur. The fix is simple and clean if we
use xa_for_each_range(), which handles the iteration with RCU while
reducing code complexity. The problem is easily reproduced with the
following test: mount -o vers=3,fsc 127.0.0.1:/export /mnt/nfs dd
if=/dev/zero of=/mnt/nfs/file1.bin bs=4096 count=1 echo 3 >
/proc/sys/vm/drop_caches dd if=/mnt/nfs/file1.bin of=/dev/null umount
/mnt/nfs On the console with a lockdep-enabled kernel a message
similar to the following will be seen:
================================ WARNING: inconsistent lock state
6.7.0-lockdbg+ #10 Not tainted --------------------------------
inconsistent {IN-SOFTIRQ-W} -> {SOFTIRQ-ON-W} usage. test5/1708
[HC0[0]:SC0[0]:HE1:SE1] takes: ffff888127baa598
(&xa->xa_lock#4){+.?.}-{3:3}, at: nfs_netfs_issue_read+0x1b2/0x4b0
[nfs] {IN-SOFTIRQ-W} state was registered at: lock_acquire+0x144/0x380
_raw_spin_lock_irqsave+0x4e/0xa0 __folio_end_writeback+0x17e/0x5c0
folio_end_writeback+0x93/0x1b0 iomap_finish_ioend+0xeb/0x6a0
blk_update_request+0x204/0x7f0 blk_mq_end_request+0x30/0x1c0
blk_complete_reqs+0x7e/0xa0 __do_softirq+0x113/0x544
__irq_exit_rcu+0xfe/0x120 irq_exit_rcu+0xe/0x20
sysvec_call_function_single+0x6f/0x90
asm_sysvec_call_function_single+0x1a/0x20 pv_native_safe_halt+0xf/0x20
default_idle+0x9/0x20 default_idle_call+0x67/0xa0 do_idle+0x2b5/0x300
cpu_startup_entry+0x34/0x40 start_secondary+0x19d/0x1c0
secondary_startup_64_no_verify+0x18f/0x19b irq event stamp: 176891
hardirqs last enabled at (176891): [ |
Test IDs: | None available |
Cross References: |
Common Vulnerability Exposure (CVE) ID: CVE-2024-27031 https://git.kernel.org/stable/c/8a2e5977cecd3cde6a0e3e86b7b914d00240e5dc https://git.kernel.org/stable/c/8a2e5977cecd3cde6a0e3e86b7b914d00240e5dc https://git.kernel.org/stable/c/8df1678c021ffeb20ef8a203bd9413f3ed9b0e9a https://git.kernel.org/stable/c/8df1678c021ffeb20ef8a203bd9413f3ed9b0e9a https://git.kernel.org/stable/c/ad27382f8495f8ef6d2c66c413d756bfd13c0598 https://git.kernel.org/stable/c/ad27382f8495f8ef6d2c66c413d756bfd13c0598 https://git.kernel.org/stable/c/fd5860ab6341506004219b080aea40213b299d2e https://git.kernel.org/stable/c/fd5860ab6341506004219b080aea40213b299d2e |