Skip to content
CVE PROGRAM SOURCE RECORD9.8 Critical

CVE-2026-31589

mm: call ->free_folio() directly in folio_unmap_invalidate()

Description

In the Linux kernel, the following vulnerability has been resolved: mm: call ->free_folio() directly in folio_unmap_invalidate() We can only call filemap_free_folio() if we have a reference to (or hold a lock on) the mapping. Otherwise, we've already removed the folio from the mapping so it no longer pins the mapping and the mapping can be removed, causing a use-after-free when accessing mapping->a_ops. Follow the same pattern as __remove_mapping() and load the free_folio function pointer before dropping the lock on the mapping. That lets us make filemap_free_folio() static as this was the only caller outside filemap.c.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • fb7d3bc4149395c1ae99029c852eab6c28fc3c88 to < efc52947247a21bbf79059539bbbd40f4ea76f00affected
  • fb7d3bc4149395c1ae99029c852eab6c28fc3c88 to < b667df39d98a7a24be7c2a40ff0863dac1ad2cd7affected
  • fb7d3bc4149395c1ae99029c852eab6c28fc3c88 to < c330e65ea59c4805d6ab6757c4ddfe8c63acef31affected
  • fb7d3bc4149395c1ae99029c852eab6c28fc3c88 to < 615d9bb2ccad42f9e21d837431e401db2e471195affected

Linux Linux

Default version status: affected

  • 6.14affected
  • 0 to < 6.14unaffected
  • 6.18.27 to ≤ 6.18.*unaffected
  • 6.19.14 to ≤ 6.19.*unaffected
  • 7.0.1 to ≤ 7.0.*unaffected
  • 7.1 to ≤ *unaffected

References