Linux内核NVMe-FC驱动漏洞CVE-2025-40261:异步任务取消顺序错误可导致内核崩溃

本文详细分析了Linux内核中NVMe over Fabrics(NVMe-FC)驱动程序的一个高危漏洞(CVE-2025-40261)。该漏洞源于在控制器删除过程中,错误的工作队列任务取消顺序,可能导致内核链表损坏并触发系统崩溃(Kernel BUG)。文中提供了漏洞的详细技术描述、触发的错误堆栈跟踪以及官方的修复方案。

CVE-2025-40261 - nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()

概述

漏洞时间线

描述

在Linux内核中,已修复以下漏洞:

nvme: nvme-fc: 确保在 nvme_fc_delete_ctrl() 中取消 ->ioerr_work

nvme_fc_delete_association() 在返回前会等待待处理的I/O操作完成,而错误可能导致在 cancel_work_sync() 被调用之后,->ioerr_work 才被加入队列。将 cancel_work_sync() 的调用移到 nvme_fc_delete_association() 之后,以确保在释放 nvme_fc_ctrl 对象时,->ioerr_work 没有在运行。否则,可能发生以下情况:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
[ 1135.911754] list_del corruption, ff2d24c8093f31f8->next is NULL
[ 1135.917705] ------------[ cut here ]------------
[ 1135.922336] kernel BUG at lib/list_debug.c:52!
[ 1135.926784] Oops: invalid opcode: 0000 [#1] SMP NOPTI
[ 1135.931851] CPU: 48 UID: 0 PID: 726 Comm: kworker/u449:23 Kdump: loaded Not tainted 6.12.0 #1 PREEMPT(voluntary)
[ 1135.943490] Hardware name: Dell Inc. PowerEdge R660/0HGTK9, BIOS 2.5.4 01/16/2025
[ 1135.950969] Workqueue:  0x0 (nvme-wq)
[ 1135.954673] RIP: 0010:__list_del_entry_valid_or_report.cold+0xf/0x6f
[ 1135.961041] Code: c7 c7 98 68 72 94 e8 26 45 fe ff 0f 0b 48 c7 c7 70 68 72 94 e8 18 45 fe ff 0f 0b 48 89 fe 48 c7 c7 80 69 72 94 e8 07 45 fe ff <0f> 0b 48 89 d1 48 c7 c7 a0 6a 72 94 48 89 c2 e8 f3 44 fe ff 0f 0b
[ 1135.979788] RSP: 0018:ff579b19482d3e50 EFLAGS: 00010046
[ 1135.985015] RAX: 0000000000000033 RBX: ff2d24c8093f31f0 RCX: 0000000000000000
[ 1135.992148] RDX: 0000000000000000 RSI: ff2d24d6bfa1d0c0 RDI: ff2d24d6bfa1d0c0
[ 1135.999278] RBP: ff2d24c8093f31f8 R08: 0000000000000000 R09: ffffffff951e2b08
[ 1136.006413] R10: ffffffff95122ac8 R11: 0000000000000003 R12: ff2d24c78697c100
[ 1136.013546] R13: fffffffffffffff8 R14: 0000000000000000 R15: ff2d24c78697c0c0
[ 1136.020677] FS:  0000000000000000(0000) GS:ff2d24d6bfa00000(0000) knlGS:0000000000000000
[ 1136.028765] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 1136.034510] CR2: 00007fd207f90b80 CR3: 000000163ea22003 CR4: 0000000000f73ef0
[ 1136.041641] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 1136.048776] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400
[ 1136.055910] PKRU: 55555554
[ 1136.058623] Call Trace:
[ 1136.061074]  <TASK>
[ 1136.063179]  ? show_trace_log_lvl+0x1b0/0x2f0
[ 1136.067540]  ? show_trace_log_lvl+0x1b0/0x2f0
[ 1136.071898]  ? move_linked_works+0x4a/0xa0
[ 1136.075998]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f
[ 1136.081744]  ? __die_body.cold+0x8/0x12
[ 1136.085584]  ? die+0x2e/0x50
[ 1136.088469]  ? do_trap+0xca/0x110
[ 1136.091789]  ? do_error_trap+0x65/0x80
[ 1136.095543]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f
[ 1136.101289]  ? exc_invalid_op+0x50/0x70
[ 1136.105127]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f
[ 1136.110874]  ? asm_exc_invalid_op+0x1a/0x20
[ 1136.115059]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f
[ 1136.120806]  move_linked_works+0x4a/0xa0
[ 1136.124733]  worker_thread+0x216/0x3a0
[ 1136.128485]  ? __pfx_worker_thread+0x10/0x10
[ 1136.132758]  kthread+0xfa/0x240
[ 1136.135904]  ? __pfx_kthread+0x10/0x10
[ 1136.139657]  ret_from_fork+0x31/0x50
[ 1136.143236]  ? __pfx_kthread+0x10/0x10
[ 1136.146988]  ret_from_fork_asm+0x1a/0x30
[ 1136.150915]  </TASK>

信息

发布日期: 2025年12月4日,下午4:16

最后修改日期: 2025年12月4日,下午5:15

远程可利用:

来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

受影响的产品

以下产品受到CVE-2025-40261漏洞的影响。即使cvefeed.io知道受影响产品的确切版本,该信息也未在下表中表示。

尚无受影响产品记录。

: 受影响供应商总数:0 | 产品:0

解决方案

  • 纠正工作取消顺序以防止数据损坏。
  • 确保工作取消发生在关联删除之后。
  • 将Linux内核更新到已修复的版本。
  • 重启受影响的系统。
  • 通过测试验证修复。

公告、解决方案和工具的参考链接

此处,您将找到精心挑选的外部链接列表,这些链接提供了与CVE-2025-40261相关的深入信息、实用解决方案和有价值的工具。

CWE - 常见弱点枚举

虽然CVE标识特定的漏洞实例,但CWE对可能导致漏洞的常见缺陷或弱点进行分类。CVE-2025-40261与以下CWE相关联:

竞态条件

常见攻击模式枚举与分类(CAPEC)

常见攻击模式枚举与分类(CAPEC)存储攻击模式,这些模式描述了对手利用CVE-2025-40261弱点的常见属性和方法。

(此部分内容为空)

漏洞评分详情

暂无此漏洞的CVSS指标可用。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计