CVE-2026-31589
CRITICALmm: call ->free_folio() directly in folio_unmap_invalidate()
Title source: cnaDescription
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.
Scores
CVSS v3
9.8
EPSS
0.0005
EPSS Percentile
16.4%
Attack Vector
NETWORK
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Details
CWE
CWE-416
Status
published
Products (11)
Linux/Linux
< 6.14
Linux/Linux
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 - b667df39d98a7a24be7c2a40ff0863dac1ad2cd7
Linux/Linux
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 - c330e65ea59c4805d6ab6757c4ddfe8c63acef31
Linux/Linux
6.14
Linux/Linux
6.19.14 - 6.19.*
Linux/Linux
7.0.1 - 7.0.*
Linux/Linux
7.1-rc1
Linux/Linux
fb7d3bc4149395c1ae99029c852eab6c28fc3c88 - 615d9bb2ccad42f9e21d837431e401db2e471195
Linux/Linux
fb7d3bc4149395c1ae99029c852eab6c28fc3c88 - b667df39d98a7a24be7c2a40ff0863dac1ad2cd7
Linux/Linux
fb7d3bc4149395c1ae99029c852eab6c28fc3c88 - c330e65ea59c4805d6ab6757c4ddfe8c63acef31
... and 1 more
Published
Apr 24, 2026
Tracked Since
Apr 24, 2026