漏洞信息
# irqchip/gic-v2m: 防止gicv2m_get_fwnode()的使用后释放问题
## 漏洞概述
Linux内核中的`irqchip/gic-v2m`模块存在一个use after free漏洞,该漏洞涉及`gicv2m_get_fwnode()`函数。
## 影响版本
暂未明确指定,但涉及使用ACPI的Linux内核版本。
## 漏洞细节
在启用ACPI的情况下,`gicv2m_get_fwnode()`函数被注册为PCI子系统的回调函数`pci_msi_get_fwnode_cb()`。此回调函数在PCI主机桥接器探测过程中可能被调用。然而,该回调函数被错误地标记为`__init`类型,当它被PCI子系统注册时,可能会被释放,从而触发一次use after free漏洞。
具体错误表现为:
```
Unable to handle kernel paging request at virtual address ffff8000816c0400
gicv2m_get_fwnode+0x0/0x58 (P)
pci_set_bus_msi_domain+0x74/0x88
pci_register_host_bridge+0x194/0x548
```
此问题在使用ACPI启动的Juno板上可以轻松复现。
## 影响
该漏洞可能导致内核崩溃或被利用进行权限提升攻击。需要保留函数以备后续使用。
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
irqchip/gic-v2m: Prevent use after free of gicv2m_get_fwnode()
漏洞描述信息
In the Linux kernel, the following vulnerability has been resolved:
irqchip/gic-v2m: Prevent use after free of gicv2m_get_fwnode()
With ACPI in place, gicv2m_get_fwnode() is registered with the pci
subsystem as pci_msi_get_fwnode_cb(), which may get invoked at runtime
during a PCI host bridge probe. But, the call back is wrongly marked as
__init, causing it to be freed, while being registered with the PCI
subsystem and could trigger:
Unable to handle kernel paging request at virtual address ffff8000816c0400
gicv2m_get_fwnode+0x0/0x58 (P)
pci_set_bus_msi_domain+0x74/0x88
pci_register_host_bridge+0x194/0x548
This is easily reproducible on a Juno board with ACPI boot.
Retain the function for later use.
CVSS信息
N/A
漏洞类别
N/A
漏洞标题
Linux kernel 安全漏洞
漏洞描述信息
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于函数标记错误,可能导致释放后重用。
CVSS信息
N/A
漏洞类别
其他