# 网络:microchip:sparx5:修复sparx_stats_init() 和 sparx5_start() 中潜在的空指针解引用问题
## 概述
在Linux内核中,`sparx_stats_init()` 和 `sparx5_start()` 函数中存在空指针引用漏洞。这些函数调用 `create_singlethread_workqueue()` 并未检查返回值,导致可能产生空指针引用。
## 细节
- `sparx_stats_init()` 调用 `create_singlethread_workqueue()` 并未检查返回值。
- 如果 `create_singlethread_workqueue()` 失败,`sparx5->stats_queue` 将为 `NULL`。
- 后续调用 `queue_delayed_work()` 会引发空指针引用,具体路径如下:
```c
queue_delayed_work()
queue_delayed_work_on()
__queue_delayed_work() # 警告,但会继续执行
__queue_work() # 访问 wq->flags,此处为空指针引用。
```
- 需要检查 `create_singlethread_workqueue()` 的返回值,如果为 `NULL`,则返回 `-ENOMEM`。`sparx5_start()` 也存在类似问题。
## 影响
该漏洞可能导致空指针引用错误,进而可能引起系统崩溃或拒绝服务。
# | POC 描述 | 源链接 | 神龙链接 |
---|
标题: 503 Service Temporarily Unavailable -- 🔗来源链接
标签:
标题: 503 Service Temporarily Unavailable -- 🔗来源链接
标签:
标题: Making sure you're not a bot! -- 🔗来源链接
标签: