lib:alloc_tag_module_unload 必须等待待处理的 kfree_rcu 调用(CVE-2024-50212)
CVE编号
CVE-2024-50212利用情况
暂无补丁情况
N/A披露时间
2024-11-09漏洞描述
在Linux内核中,已经解决了一个关于模块卸载时的内存泄漏问题。具体描述如下:问题出现在lib中的alloc_tag模块卸载函数(alloc_tag_module_unload)。当nf_nat模块退出时,它会调用kfree_rcu来释放内存。然而,当alloc_tag检查内存泄漏时,这个释放操作可能还在进行中。因此,会出现警告信息,表明可能存在内存泄漏。问题描述的具体信息如下:在net/netfilter/nf_nat_core.c文件的第1114行,模块nf_nat的函数nf_nat_register_fn在模块卸载时分配了256个内存块。当尝试卸载nf_nat模块时,会触发警告信息。警告信息指出CPU 1上的进程ID为10421的alloc_tag.c文件的第168行存在问题。具体来说,alloc_tag_module_unload函数中的某些操作可能仍在执行,导致内存尚未完全释放。因此,在检查内存泄漏时会出现警告。为了解决这个问题,需要在检查内存泄漏之前等待所有待处理的kfree_rcu操作完成。这样就可以消除这个警告信息。问题的复现步骤如下:首先执行unshare命令和iptables命令来设置一些网络相关的配置,然后移除nft_chain_nat和nf_nat模块,此时就会出现警告信息。为了解决此问题,需要等待所有待处理的kfree_rcu操作完成后再进行内存泄漏检查。这样可以确保内核在模块卸载时正确地释放所有已分配的内存,从而避免内存泄漏问题。解决建议
"将组件 Linux 升级至 6.10 及以上版本"
参考链接 |
|
|---|---|
| https://git.kernel.org/stable/c/24211fb49c9ac1b576470b7e393a5a0b50af2707 | |
| https://git.kernel.org/stable/c/dc783ba4b9df3fb3e76e968b2cbeb9960069263c |
受影响软件情况
| # | 类型 | 厂商 | 产品 | 版本 | 影响面 | ||||
| 1 | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| 运行在以下环境 | |||||||||
| 系统 | debian_11 | linux | * | Up to (excluding) 5.10.226-1 | |||||
| 运行在以下环境 | |||||||||
| 系统 | debian_12 | linux | * | Up to (excluding) 6.1.115-1 | |||||
- 攻击路径 N/A
- 攻击复杂度 N/A
- 权限要求 N/A
- 影响范围 N/A
- 用户交互 N/A
- 可用性 N/A
- 保密性 N/A
- 完整性 N/A
| CWE-ID | 漏洞类型 |
Exp相关链接
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。






评论