CVE-2024-35797

High

Description

In the Linux kernel, the following vulnerability has been resolved: mm: cachestat: fix two shmem bugs When cachestat on shmem races with swapping and invalidation, there are two possible bugs: 1) A swapin error can have resulted in a poisoned swap entry in the shmem inode's xarray. Calling get_shadow_from_swap_cache() on it will result in an out-of-bounds access to swapper_spaces[]. Validate the entry with non_swap_entry() before going further. 2) When we find a valid swap entry in the shmem's inode, the shadow entry in the swapcache might not exist yet: swap IO is still in progress and we're before __remove_mapping; swapin, invalidation, or swapoff have removed the shadow from swapcache after we saw the shmem swap entry. This will send a NULL to workingset_test_recent(). The latter purely operates on pointer bits, so it won't crash - node 0, memcg ID 0, eviction timestamp 0, etc. are all valid inputs - but it's a bogus test. In theory that could result in a false "recently evicted" count. Such a false positive wouldn't be the end of the world. But for code clarity and (future) robustness, be explicit about this case. Bail on get_shadow_from_swap_cache() returning NULL.

SeverityHigh
CVSS7.1
Exploit probability—
ProductLinux Kernel
PublishedMay 17, 2024
First seenMay 17, 2024

How to fix

Update
  • linux linux_kernel6.6.24, 6.7.12, 6.8.3 or later

Affected products

ProductAffected versionsFixed in
linux linux_kernel6.5 ≤ v < 6.6.24, 6.7 ≤ v < 6.7.12, 6.8 ≤ v < 6.8.3, 6.96.6.24, 6.7.12, 6.8.3

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.

CVE-2024-35797 · Linux Kernel · Dark Radar