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相关链接

版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论