CVE-2024-35797

mm: cachestat: fix two shmem bugs

MEDIUM
5.5
CVSS Score
Published: May 17, 2024 at 01:23 PM UTC
Updated: August 5, 2026 at 12:04 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.7%
SSVC
No known exploit

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.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

6.5 ≤ v < 6.6.246.5 ≤ v < 6.7.126.5 ≤ v < 6.8.36.5 ≤ v < 6.96.7 ≤ v < 6.7.126.8 ≤ v < 6.8.36.9 rc1cf264e1329fb0307e044f7675849f9f38b44c11a
Vendor states this is fixed in 24a0e73d544439bb9329fbbafac44299e548a677 (fixed)
Vendor states this is fixed in b79f9e1ff27c994a4c452235ba09e672ec698e23 (fixed)
Vendor states this is fixed in d5d39c707a4cf0bcc84680178677b97aa2cb2627 (fixed)
Vendor states this is fixed in d962f6c583458037dc7e529659b2b02b9dd3d94b (fixed)
Vendor states this is fixed in 6.5 (unaffected)
Vendor states this is fixed in 6.6.24 (unaffected)
Vendor states this is fixed in 6.7.12 (unaffected)
Vendor states this is fixed in 6.8.3 (unaffected)
Vendor states this is fixed in 6.9 (unaffected)

References (4)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/24a0e73d544439bb9329fbbafac44299e548a677
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/b79f9e1ff27c994a4c452235ba09e672ec698e23
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/d5d39c707a4cf0bcc84680178677b97aa2cb2627
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/d962f6c583458037dc7e529659b2b02b9dd3d94b

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-787

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card