CVE-2026-74482

Updated on 15 Aug 2026

Severity

7.8 High severity

Details

CVSS score
7.8
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Overview

About vulnerability

In the Linux kernel, the following vulnerability has been resolved:

mm/huge_memory: unlock i_mmap_rwsem before releasing after-split folios

__folio_split() keeps dereferencing the mapping after the split: shmem_uncharge(mapping->host) and remap_page() while the folios are still frozen/locked, and i_mmap_unlock_read(mapping) at the very end, after the after-split folios have been unlocked and freed.

Nothing holds an inode reference across that. The split relies on @folio – which the beyond-EOF drop loop never removes, as it starts at folio_next(folio) – staying locked and in the page cache to hold off eviction. But the unlock loop unlocks @folio before i_mmap_unlock_read() runs. If the caller’s @lock_at is a tail beyond EOF, as memory_failure() passes when splitting a poisoned tail of a shmem THP that reaches past i_size during truncation, it too is gone from the page cache; so once @folio is unlocked no locked, in-cache folio pins the inode, and a concurrent final iput() can evict and RCU-free it before i_mmap_unlock_read() touches i_mmap_rwsem:

BUG: KASAN: slab-use-after-free in __up_read+0x634/0x790 i_mmap_unlock_read include/linux/fs.h:537 [inline] __folio_split+0x732/0x1640 mm/huge_memory.c:4100 try_to_split_thp_page+0xab/0x390 mm/memory-failure.c:1675 memory_failure+0x1394/0x26e0 mm/memory-failure.c:2470

Freed by task 4601: shmem_free_in_core_inode+0x54/0xb0 mm/shmem.c:5177 evict+0x57f/0xac0 fs/inode.c:870

Do every mapping dereference while @folio still pins the inode: drop i_mmap_rwsem right after remap_page(), before the loop that unlocks and frees the after-split folios, and clear @mapping so the exit path does not unlock it again. shmem_uncharge() and remap_page() already run before that point, so after this nothing past the unlock loop touches the inode or the mapping.

This is now a rule the split depends on, alongside keeping @folio frozen until the page cache is updated: no inode or mapping dereference once the after-split folios start being unlocked.

Details

Fixes

KernelCare state

Live-patch status from KernelCare for each operating system.

Operating system Status Covered kernels
Debian 12 Planned —
Debian 13 Planned —
Oracle Linux 8 UEK 7 Will Not Fix
112 kernels
  • 5.15.0-102.110.5.el8uek
  • 5.15.0-101.103.2.1.el8uek
  • 5.15.0-8.91.4.1.el8uek
  • 5.15.0-7.86.6.1.el8uek
  • 5.15.0-2.52.3.el8uek
  • 5.15.0-100.96.32.el8uek
  • 5.15.0-5.76.5.1.el8uek
  • 5.15.0-6.80.3.1.el8uek
  • 5.15.0-3.60.5.1.el8uek
  • 5.15.0-0.30.20.el8uek
  • 5.15.0-1.43.4.1.el8uek
  • 5.15.0-0.30.20.1.el8uek
  • 5.15.0-1.43.4.2.el8uek
  • 5.15.0-4.70.5.2.el8uek
  • 5.15.0-104.119.4.2.el8uek
  • 5.15.0-0.30.19.el8uek
  • 5.15.0-105.125.6.2.el8uek
  • 5.15.0-105.125.6.2.1.el8uek
  • 5.15.0-105.125.6.2.2.el8uek
  • 5.15.0-106.131.4.el8uek
  • 5.15.0-200.131.27.el8uek
  • 5.15.0-200.131.27.1.el8uek
  • 5.15.0-201.135.6.el8uek
  • 5.15.0-202.135.2.el8uek
  • 5.15.0-102.110.5.1.el8uek
  • 5.15.0-103.114.4.el8uek
  • 5.15.0-203.146.5.1.el8uek
  • 5.15.0-204.147.6.2.el8uek
  • 5.15.0-204.147.6.3.el8uek
  • 5.15.0-205.149.5.1.el8uek
  • 5.15.0-205.149.5.4.el8uek
  • 5.15.0-206.153.7.el8uek
  • 5.15.0-206.153.7.1.el8uek
  • 5.15.0-207.156.6.el8uek
  • 5.15.0-208.159.3.el8uek
  • 5.15.0-208.159.3.2.el8uek
  • 5.15.0-209.161.7.el8uek
  • 5.15.0-209.161.7.1.el8uek
  • 5.15.0-209.161.7.2.el8uek
  • 5.15.0-210.163.7.el8uek
  • 5.15.0-300.163.18.el8uek
  • 5.15.0-300.163.18.1.el8uek
  • 5.15.0-300.163.18.1.1.el8uek
  • 5.15.0-301.163.5.2.el8uek
  • 5.15.0-302.167.6.el8uek
  • 5.15.0-300.163.18.7.el8uek
  • 5.15.0-302.167.6.1.el8uek
  • 5.15.0-303.171.5.2.el8uek
  • 5.15.0-303.171.5.2.1.el8uek
  • 5.15.0-304.171.4.el8uek
  • 5.15.0-304.171.4.1.el8uek
  • 5.15.0-304.171.4.3.el8uek
  • 5.15.0-303.171.5.2.2.el8uek
  • 5.15.0-305.176.4.el8uek
  • 5.15.0-306.177.4.el8uek
  • 5.15.0-306.177.4.1.el8uek
  • 5.15.0-307.178.5.el8uek
  • 5.15.0-308.179.6.el8uek
  • 5.15.0-308.179.6.2.el8uek
  • 5.15.0-308.179.6.3.el8uek
  • 5.15.0-309.180.4.el8uek
  • 5.15.0-308.179.6.7.el8uek
  • 5.15.0-309.180.4.2.el8uek
  • 5.15.0-308.179.6.11.el8uek
  • 5.15.0-310.184.5.2.el8uek
  • 5.15.0-310.184.5.3.el8uek
  • 5.15.0-311.185.9.el8uek
  • 5.15.0-308.179.6.14.el8uek
  • 5.15.0-312.187.5.el8uek
  • 5.15.0-312.187.5.1.el8uek
  • 5.15.0-312.187.5.2.el8uek
  • 5.15.0-312.187.5.3.el8uek
  • 5.15.0-308.179.6.16.el8uek
  • 5.15.0-313.189.5.1.el8uek
  • 5.15.0-313.189.5.2.el8uek
  • 5.15.0-313.189.5.3.el8uek
  • 5.15.0-314.193.5.3.el8uek
  • 5.15.0-314.193.5.4.el8uek
  • 5.15.0-314.193.5.5.el8uek
  • 5.15.0-315.196.5.1.el8uek
  • 5.15.0-315.196.5.2.el8uek
  • 5.15.0-316.196.4.1.el8uek
  • 5.15.0-316.196.4.2.el8uek
  • 5.15.0-317.197.5.1.el8uek
  • 5.15.0-317.197.5.2.el8uek
  • 5.15.0-318.199.3.2.el8uek
  • 5.15.0-318.199.3.2.1.el8uek
  • 5.15.0-319.201.4.2.el8uek
  • 5.15.0-319.201.4.3.el8uek
  • 5.15.0-319.201.4.4.el8uek
  • 5.15.0-319.201.4.6.el8uek
  • 5.15.0-320.202.8.2.el8uek
  • 5.15.0-320.202.8.3.el8uek
  • 5.15.0-320.202.8.4.el8uek
  • 5.15.0-320.202.8.5.el8uek
  • 5.15.0-318.199.3.6.el8uek
  • 5.15.0-321.202.5.el8uek
  • 5.15.0-321.202.5.1.el8uek
  • 5.15.0-321.202.5.2.el8uek
  • 5.15.0-321.202.5.3.el8uek
  • 5.15.0-322.203.3.2.el8uek
  • 5.15.0-322.203.3.3.el8uek
  • 5.15.0-322.203.3.4.el8uek
  • 5.15.0-322.203.3.4.5.el8uek
  • 5.15.0-308.179.6.18.el8uek
  • 5.15.0-318.199.3.7.el8uek
  • 5.15.0-322.203.3.5.el8uek
  • 5.15.0-322.203.3.4.1.el8uek
  • 5.15.0-323.211.3.3.el8uek
  • 5.15.0-323.211.3.4.el8uek
  • 5.15.0-308.179.6.19.el8uek
  • 5.15.0-323.211.3.5.el8uek
Oracle Linux 9 UEK 7 Will Not Fix
112 kernels
  • 5.15.0-101.103.2.1.el9uek
  • 5.15.0-8.91.4.1.el9uek
  • 5.15.0-7.86.6.1.el9uek
  • 5.15.0-5.76.5.1.el9uek
  • 5.15.0-6.80.3.1.el9uek
  • 5.15.0-3.60.5.1.el9uek
  • 5.15.0-0.30.20.el9uek
  • 5.15.0-100.96.32.el9uek
  • 5.15.0-1.43.4.2.el9uek
  • 5.15.0-2.52.3.el9uek
  • 5.15.0-4.70.5.2.el9uek
  • 5.15.0-1.43.4.1.el9uek
  • 5.15.0-0.30.20.1.el9uek
  • 5.15.0-102.110.5.el9uek
  • 5.15.0-102.110.5.1.el9uek
  • 5.15.0-103.114.4.el9uek
  • 5.15.0-104.119.4.2.el9uek
  • 5.15.0-0.30.19.el9uek
  • 5.15.0-105.125.6.2.el9uek
  • 5.15.0-105.125.6.2.1.el9uek
  • 5.15.0-105.125.6.2.2.el9uek
  • 5.15.0-106.131.4.el9uek
  • 5.15.0-200.131.27.el9uek
  • 5.15.0-200.131.27.1.el9uek
  • 5.15.0-201.135.6.el9uek
  • 5.15.0-202.135.2.el9uek
  • 5.15.0-203.146.5.1.el9uek
  • 5.15.0-204.147.6.2.el9uek
  • 5.15.0-204.147.6.3.el9uek
  • 5.15.0-205.149.5.1.el9uek
  • 5.15.0-205.149.5.4.el9uek
  • 5.15.0-206.153.7.el9uek
  • 5.15.0-206.153.7.1.el9uek
  • 5.15.0-207.156.6.el9uek
  • 5.15.0-208.159.3.el9uek
  • 5.15.0-208.159.3.2.el9uek
  • 5.15.0-209.161.7.el9uek
  • 5.15.0-209.161.7.1.el9uek
  • 5.15.0-209.161.7.2.el9uek
  • 5.15.0-210.163.7.el9uek
  • 5.15.0-300.163.18.el9uek
  • 5.15.0-300.163.18.1.el9uek
  • 5.15.0-300.163.18.1.1.el9uek
  • 5.15.0-301.163.5.2.el9uek
  • 5.15.0-302.167.6.el9uek
  • 5.15.0-300.163.18.7.el9uek
  • 5.15.0-302.167.6.1.el9uek
  • 5.15.0-303.171.5.2.el9uek
  • 5.15.0-303.171.5.2.1.el9uek
  • 5.15.0-304.171.4.el9uek
  • 5.15.0-304.171.4.1.el9uek
  • 5.15.0-304.171.4.3.el9uek
  • 5.15.0-303.171.5.2.2.el9uek
  • 5.15.0-305.176.4.el9uek
  • 5.15.0-306.177.4.el9uek
  • 5.15.0-306.177.4.1.el9uek
  • 5.15.0-307.178.5.el9uek
  • 5.15.0-308.179.6.el9uek
  • 5.15.0-308.179.6.2.el9uek
  • 5.15.0-308.179.6.3.el9uek
  • 5.15.0-309.180.4.el9uek
  • 5.15.0-308.179.6.7.el9uek
  • 5.15.0-309.180.4.2.el9uek
  • 5.15.0-308.179.6.11.el9uek
  • 5.15.0-310.184.5.2.el9uek
  • 5.15.0-310.184.5.3.el9uek
  • 5.15.0-311.185.9.el9uek
  • 5.15.0-308.179.6.14.el9uek
  • 5.15.0-312.187.5.el9uek
  • 5.15.0-312.187.5.1.el9uek
  • 5.15.0-312.187.5.2.el9uek
  • 5.15.0-312.187.5.3.el9uek
  • 5.15.0-308.179.6.16.el9uek
  • 5.15.0-313.189.5.1.el9uek
  • 5.15.0-313.189.5.2.el9uek
  • 5.15.0-313.189.5.3.el9uek
  • 5.15.0-314.193.5.3.el9uek
  • 5.15.0-314.193.5.4.el9uek
  • 5.15.0-314.193.5.5.el9uek
  • 5.15.0-315.196.5.1.el9uek
  • 5.15.0-315.196.5.2.el9uek
  • 5.15.0-316.196.4.1.el9uek
  • 5.15.0-316.196.4.2.el9uek
  • 5.15.0-317.197.5.1.el9uek
  • 5.15.0-317.197.5.2.el9uek
  • 5.15.0-318.199.3.2.el9uek
  • 5.15.0-318.199.3.2.1.el9uek
  • 5.15.0-319.201.4.2.el9uek
  • 5.15.0-319.201.4.3.el9uek
  • 5.15.0-319.201.4.4.el9uek
  • 5.15.0-319.201.4.6.el9uek
  • 5.15.0-320.202.8.2.el9uek
  • 5.15.0-320.202.8.3.el9uek
  • 5.15.0-320.202.8.4.el9uek
  • 5.15.0-320.202.8.5.el9uek
  • 5.15.0-318.199.3.6.el9uek
  • 5.15.0-321.202.5.el9uek
  • 5.15.0-321.202.5.1.el9uek
  • 5.15.0-321.202.5.2.el9uek
  • 5.15.0-321.202.5.3.el9uek
  • 5.15.0-322.203.3.2.el9uek
  • 5.15.0-322.203.3.3.el9uek
  • 5.15.0-322.203.3.4.el9uek
  • 5.15.0-322.203.3.4.5.el9uek
  • 5.15.0-308.179.6.18.el9uek
  • 5.15.0-318.199.3.7.el9uek
  • 5.15.0-322.203.3.5.el9uek
  • 5.15.0-322.203.3.4.1.el9uek
  • 5.15.0-323.211.3.3.el9uek
  • 5.15.0-323.211.3.4.el9uek
  • 5.15.0-308.179.6.19.el9uek
  • 5.15.0-323.211.3.5.el9uek
Ubuntu 22.04 Planned —
Ubuntu 22.04 AWS Planned —
Ubuntu 22.04 Azure Planned —