netfilter:修复 get_info() 中的 use-after-free 问题(CVE-2024-50257)
CVE编号
CVE-2024-50257利用情况
暂无补丁情况
N/A披露时间
2024-11-09漏洞描述
在Linux内核中,存在一个漏洞已经被修复,具体描述如下:该漏洞存在于netfilter模块中,涉及到一个使用后的释放问题(use-after-free)出现在get_info()函数中。当ip6table_nat模块卸载时,由于引用计数(refcnt)警告导致未定义引用(UAF)。警告信息如下:警告发生在CPU 1上,进程ID为379,位于kernel/module/main.c文件的第853行,调用函数为module_put+0x6f/0x80。同时加载的模块包括ip6table_nat(-表示正在被卸载)。在调用堆栈跟踪中,可以看到get_info()函数与模块卸载操作并发执行触发了警告。根本原因是在模块退出时(module_exit),ip6table_nat模块也在退出(ip6table_nat_exit)。在xt_unregister_template函数中,模板表(t)被释放(kfree(t)),并从模板列表中移除。然而,在此之后,getinfo()函数试图查找并获取表(t)的引用计数(refcnt)。由于表(t)已经被释放并从模板列表中移除,因此无法获取其引用计数,导致未定义引用(UAF)。为了解决这个问题,需要检查xt_net->tables列表中的模块重新遍历过程,确保在模块卸载过程中正确处理引用计数,避免使用已经释放的资源。修复方案涉及对代码进行调整,以确保在模块卸载时正确地处理相关资源和引用计数,以避免潜在的内存访问错误和漏洞风险。解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。受影响软件情况
# | 类型 | 厂商 | 产品 | 版本 | 影响面 | ||||
1 | |||||||||
---|---|---|---|---|---|---|---|---|---|
运行在以下环境 | |||||||||
系统 | debian_11 | linux | * | Up to (excluding) 5.10.226-1 |
- 攻击路径 N/A
- 攻击复杂度 N/A
- 权限要求 N/A
- 影响范围 N/A
- 用户交互 N/A
- 可用性 N/A
- 保密性 N/A
- 完整性 N/A
CWE-ID | 漏洞类型 |
Exp相关链接

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