关键漏洞信息 提交信息: - 标题: mm/migrate: fix shmem xarray update during migration - 作者: Zi Yan - 提交者: Greg Kroah-Hartman - 提交时间: 2025-03-05 15:04:03 -0500 - 提交哈希: 75cfb92eb63298d717b6b0118f91ba12c4fcfeb5 漏洞描述: - 在迁移过程中,shmem folio 可以在页缓存或交换缓存中,但不能同时存在。一旦在交换缓存中,folio->mapping 应该为 NULL,并且 folio 不再在 shmem 映射中。 - 在 __folio_migrate_mapping() 中,使用 folio_test_swapbacked() 来确定要更新的 xarray 条目数量,但这混淆了页缓存和交换缓存中的 shmem 情况,导致 xarray 多索引条目损坏。 修复措施: - 仅使用 folio_test_swapcache() 来确定 xarray 是否存储交换缓存条目,以选择正确的 xarray 条目数量进行更新。 相关链接: - 用户空间复现: https://lore.kernel.org/linux-mm/Z8idPCkaJWlIChjT@casper.infradead.org/ - 固定提交: https://lkml.kernel.org/r/20250305200403.2822855-1-ziy@nvidia.com ``` 这些信息表明这是一个与 Linux 内核内存管理相关的漏洞,具体涉及 shmem folio 在迁移过程中的 xarray 更新问题。