漏洞标题
PCI/ASPM:启用 ASPM 时解决死锁问题
漏洞描述信息
在Linux内核中,已经修复了以下漏洞:
PCI/ASPM:解决当启用ASPM时可能导致的死锁问题
6.7最终版的一个最后一分钟的回滚引入了一个潜在的死锁。当异步探测期间(另一线程可能获取写锁的时间),尝试启用ASPM时可能出现这种情况。
要重现这个死锁,可以在像联想ThinkPad X13s这样的机器上添加延迟,增加异步探测过程中的竞态窗口。
为此,可以添加一个新的pci_set_power_state_locked()函数和相关的辅助函数。这些函数可以在持有PCI总线信号量的情况下被调用,以避免两次获取读锁。
通过这种方式,内核开发者可以更好地控制资源访问,防止死锁的发生。
CVSS信息
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
漏洞类别
加锁机制不恰当
漏洞标题
PCI/ASPM: Fix deadlock when enabling ASPM
漏洞描述信息
In the Linux kernel, the following vulnerability has been resolved:
PCI/ASPM: Fix deadlock when enabling ASPM
A last minute revert in 6.7-final introduced a potential deadlock when
enabling ASPM during probe of Qualcomm PCIe controllers as reported by
lockdep:
============================================
WARNING: possible recursive locking detected
6.7.0 #40 Not tainted
--------------------------------------------
kworker/u16:5/90 is trying to acquire lock:
ffffacfa78ced000 (pci_bus_sem){++++}-{3:3}, at: pcie_aspm_pm_state_change+0x58/0xdc
but task is already holding lock:
ffffacfa78ced000 (pci_bus_sem){++++}-{3:3}, at: pci_walk_bus+0x34/0xbc
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(pci_bus_sem);
lock(pci_bus_sem);
*** DEADLOCK ***
Call trace:
print_deadlock_bug+0x25c/0x348
__lock_acquire+0x10a4/0x2064
lock_acquire+0x1e8/0x318
down_read+0x60/0x184
pcie_aspm_pm_state_change+0x58/0xdc
pci_set_full_power_state+0xa8/0x114
pci_set_power_state+0xc4/0x120
qcom_pcie_enable_aspm+0x1c/0x3c [pcie_qcom]
pci_walk_bus+0x64/0xbc
qcom_pcie_host_post_init_2_7_0+0x28/0x34 [pcie_qcom]
The deadlock can easily be reproduced on machines like the Lenovo ThinkPad
X13s by adding a delay to increase the race window during asynchronous
probe where another thread can take a write lock.
Add a new pci_set_power_state_locked() and associated helper functions that
can be called with the PCI bus semaphore held to avoid taking the read lock
twice.
CVSS信息
N/A
漏洞类别
N/A
漏洞标题
Linux Kernel 安全漏洞
漏洞描述信息
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux Kernel 存在安全漏洞,该漏洞源于启用 ASPM 时,会导致死锁。
CVSS信息
N/A
漏洞类别
其他