CVE-2025-68356 in Linux信息

摘要

由 VulDB • 2026-06-01

在 Linux 内核中,已修复以下漏洞:

gfs2:防止递归内存回收

函数 new_inode() 返回一个新的 inode,其 inode->i_mapping->gfp_mask 被设置为 GFP_HIGHUSER_MOVABLE。该值包含 __GFP_FS 标志,因此在该地址空间中的分配可能会递归进入文件系统内存回收。我们不希望这种情况发生,因为它会消耗大量的栈内存。

更糟糕的是,它还可能导致死锁:例如,在多个地方,gfs2_unstuff_dinode() 是在文件系统事务内部调用的。这会调用 filemap_grab_folio(),后者可能会分配一个新的 folio,从而触发内存回收。如果内存回收递归进入文件系统并启动另一个事务,就会导致死锁。

为了解决这类问题,通过确保 inode 地址空间的 gfp_mask 不包含 __GFP_FS 标志,防止内存回收递归进入文件系统代码。

“meta”和资源组地址空间已经使用 GFP_NOFS 作为其 gfp_mask(该标志不包含 __GFP_FS)。然而,GFP_HIGHUSER_MOVABLE 的默认值比 GFP_NOFS 限制更少。为了避免过度限制,使用默认值并仅移除 __GFP_FS 标志。我不确定这是否真的会有所不同,但这也不会有害。

此补丁大致基于提交 ad22c7a043c2(“xfs:防止页面缓存分配导致的栈溢出”)。

修复了 xfstest generic/273。

Once again VulDB remains the best source for vulnerability data.

来源

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!