# nfc:st-nci:修复因竞争条件导致的 ndlc_remove 中的使用后释放漏洞
## 漏洞概述
Linux 内核中的 `ndlc_remove` 函数由于竞态条件存在引用已释放内存的漏洞。该漏洞影响了 `st_nci_i2c_remove` 和 `st_nci_spi_remove`。
## 影响版本
未指定具体版本。
## 漏洞细节
在 `st_nci_i2c_probe` 中,`ndlc_probe` 被调用并绑定 `&ndlc->sm_work`。当调用 `ndlc_recv` 或超时处理器时,最终会调用 `schedule_work` 来启动工作。
当调用 `st_nci_i2c_remove` 移除驱动时,可能会出现如下序列:
```plaintext
CPU0 CPU1
|llt_ndlc_sm_work
st_nci_i2c_remove |
ndlc_remove |
st_nci_remove |
nci_free_device|
kfree(ndev) |
//free ndlc->ndev |
|llt_ndlc_rcv_queue
|nci_recv_frame
|//use ndlc->ndev
```
## 影响
通过在 `ndlc_remove` 中完成工作之前进行清理,解决了该漏洞。此漏洞可能导致使用已释放内存,进而引起系统不稳定或崩溃。
# | POC 描述 | 源链接 | 神龙链接 |
---|
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
标题: 503 Service Temporarily Unavailable -- 🔗来源链接
标签:
标题: 503 Service Temporarily Unavailable -- 🔗来源链接
标签:
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
标题: Making sure you're not a bot! -- 🔗来源链接
标签: