mm:gup:停止滥用try_grab_folio(CVE-2024-44943)

admin 2024-08-29 10:53:56 Ali_nvd 来源:ZONE.CI 全球网 0 阅读模式
mm:gup:停止滥用try_grab_folio(CVE-2024-44943)

CVE编号

CVE-2024-44943

利用情况

暂无

补丁情况

N/A

披露时间

2024-08-28
漏洞描述
在Linux内核中,存在一个关于`gup`模块的漏洞已经被解决。这个漏洞出现在启动SEV虚拟机时,尝试固定CMA内存中的页时。具体的警告信息如下:当启动SEV虚拟机时,会调用`pin_user_pages_fast(..., FOLL_LONGTERM, ...)`来固定内存。由于页面位于CMA区域,快速GUP会失败并回落到慢速路径,这是由于`try_grab_folio()`中的长期固定检查导致的。慢速路径试图固定页面并将其从CMA区域迁出,但由于同样的检查,`try_grab_folio()`在慢速路径中也失败了,从而触发了上述警告。此外,`try_grab_folio()`被错误地用于快速路径,它通过增加引用次数(除非为零)来提升页面的引用计数。在慢速路径中,我们至少有一个稳定的引用,因此可以使用简单的原子增加操作。性能差异应该是微不足道的,但这种滥用可能会令人困惑和误导。为了解决这个漏洞和内核警告,将`try_grab_folio()`重命名为`try_grab_folio_fast()`,并将`try_grab_page()`重命名为`try_grab_folio()`,并在适当的路径中使用它们。这样可以更清晰地命名它们的使用场景,并防止将来再次滥用。用户会看到固定操作失败的情况,对于慢速GPU操作,它会触发警告信息在下面的失败信息中:尝试使用`try_grab_folio()`获取页时出现问题。如果获取的页有问题,会释放第一个页面引用并返回错误代码`-EFAULT`。关于这个漏洞的更多细节可以在链接[1]中找到。此外,还存在一个隐式声明函数`try_grab_folio_fast`的问题,对应的修复链接也在上述描述中给出。
解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。
参考链接
https://git.kernel.org/stable/c/26273f5f4cf68b29414e403837093408a9c98e1f
https://git.kernel.org/stable/c/f442fa6141379a20b48ae3efabee827a3d260787
CVSS3评分 N/A
  • 攻击路径 N/A
  • 攻击复杂度 N/A
  • 权限要求 N/A
  • 影响范围 N/A
  • 用户交互 N/A
  • 可用性 N/A
  • 保密性 N/A
  • 完整性 N/A
N/A
CWE-ID 漏洞类型
- avd.aliyun.com
weinxin
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论:0   参与:  0