Linux Distros 未修补的漏洞:CVE-2025-39996

critical Nessus 插件 ID 271528

简介

Linux/Unix 主机上安装的一个或多个程序包存在漏洞,但供应商表示不会修补此漏洞。

描述

Linux/Unix 主机中安装的一个或多个程序包受到一个漏洞影响,而供应商没有提供补丁程序。

- mediab2c2修复由 flexcop_pci_remove 中的 irq_check_work 造成的释放后使用发生释放后使用原始代码使用 flexcop_pci_remove() 中的 cancel_delayed_work()因此不能保证延迟的工作项目 irq_check_work 在已运行时完全完成。这会导致释放后使用情况其中 flexcop_pci_remove() 可能会在 irq_check_work 仍处于活动状态时释放 flexcop_device并尝试取消引用设备。一个典型的争用条件如下所示: CPU 0删除| CPU 1延迟工作回调 flexcop_pci_remove() | flexcop_pci_irq_check_work() cancel_delayed_work() | flexcop_pci_irq_check_work() flexcop_device_kfree(fc_pci->fc_dev) | flexcop_device_kfree | fc = fc_pci->fc_dev; // UAF KASAN 报告证实了此问题
================================================== ================ 缺陷KASAN中的 slab 释放后使用
__run_timer_base.part.0+0x7d7/0x8c0 由任务 bash/135 在地址 ffff8880093aa8c8 执行的大小为 8 的写入 ... 调用跟踪 <IRQ> dump_stack_lvl+0x55/0x70 print_report+0xcf/0x610 ? __run_timer_base.part.0+0x7d7/0x8c0 kasan_report+0xb8/0xf0 __run_timer_base.part.0+0x7d7/0x8c0 __run_timer_base.part.0+0x7d7/0x8c0
__pfx___run_timer_base.part.0+0x10/0x10 ? __pfx_read_tsc+0x10/0x10 ? ktime_get+0x60/0x140 ? lapic_next_event+0x11/0x20 clockevents_program_event+0x1d4/0x2a0 run_timer_softirq+0xd1/0x190 handle_softirqs+0x16a/0x550 irq_exit_rcu+0xaf/0xe0 sysvec_apic_timer_interrupt+0x70/0x80 </IRQ>...
按任务分配 1kasan_save_stack+0x24/0x50 kasan_save_track+0x14/0x30 __kasan_kmalloc+0x7f/0x90
__kmalloc_noprof+0x1be/0x460 flexcop_device_kmalloc+0x54/0xe0 flexcop_pci_probe+0x1f/0x9d0 local_pci_probe+0xdc/0x190 pci_device_probe+0x2fe/0x470 real_probe+0x1ca/0x5c0
__driver_probe_device+0x248/0x310 driver_probe_device+0x44/0x120 __driver_attach+0xd2/0x310 bus_for_each_dev+0xed/0x170 bus_add_driver+0x208/0x500 driver_register+0x132/0x460 do_one_initcall+0x89/0x300 kernel_init_freeable+0x40d/0x720 kernel_init+0x1a/0x150 ret_from_fork+0x10c/0x1a0 ret_from_fork_asm+0x1a/0x30 Freed by task 135: kasan_save_stack+0x24/0x50 kasan_save_track+0x14/0x30 kasan_save_free_info+0x3a/0x60 __kasan_slab_free+0x3f/0x50 kfree+0x137/0x370 flexcop_device_kfree+0x32/0x50 pci_device_remove+0xa6/0x1d0 device_release_driver_internal+0xf8/0x210 pci_stop_bus_device+0x105/0x150 pci_stop_and_remove_bus_device_locked+0x15/0x30 remove_store+0xcc/0xe0 kernfs_fop_write_iter+0x2c3/0x440 vfs_write+0x871/0xd70 ksys_write+0xee/0x1c0 do_syscall_64+0xac/0x280 entry_SYSCALL_64_after_hwframe+0x77/0x7f ... 将 cancel_delayed_work() 替换为 cancel_delayed_work_sync() 以确保正确取消延迟工作项目并确保在取消分配设备内存之前已完成任何正在执行的延迟工作。最初通过静态分析发现此缺陷。为了重现和测试该问题,我在 QEMU 中模拟了 B2C2 FlexCop PCI 设备,并在 flexcop_pci_irq_check_work() 函数中引入了人为的延迟,以增加触发该缺陷的可能性。
(CVE-2025-39996)

请注意,Nessus 依赖供应商报告的程序包是否存在进行判断。

解决方案

目前尚未有任何已知的解决方案。

另见

https://security-tracker.debian.org/tracker/CVE-2025-39996

插件详情

严重性: Critical

ID: 271528

文件名: unpatched_CVE_2025_39996.nasl

版本: 1.1

类型: local

代理: unix

系列: Misc.

发布时间: 2025/10/27

最近更新时间: 2025/10/27

支持的传感器: Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Nessus

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: High

基本分数: 7.5

时间分数: 6.4

矢量: CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P

CVSS 分数来源: CVE-2025-39996

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 9

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

时间矢量: CVSS:3.0/E:U/RL:U/RC:C

漏洞信息

CPE: cpe:/o:debian:debian_linux:14.0, cpe:/o:debian:debian_linux:11.0, p-cpe:/a:debian:debian_linux:linux, cpe:/o:debian:debian_linux:13.0, cpe:/o:debian:debian_linux:12.0

必需的 KB 项: Host/local_checks_enabled, Host/cpu, global_settings/vendor_unpatched, Host/OS/identifier

易利用性: No known exploits are available

漏洞发布日期: 2025/10/15

参考资料信息

CVE: CVE-2025-39996