CVE-2024-50278

dm cache: fix potential out-of-bounds access on the first resume

HIGH
7.1
CVSS Score
Published: November 19, 2024 at 01:30 AM UTC
Updated: June 17, 2026 at 08:04 AM 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
HIGH7.1
Exploit prediction
EPSS 0.3%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: dm cache: fix potential out-of-bounds access on the first resume Out-of-bounds access occurs if the fast device is expanded unexpectedly before the first-time resume of the cache table. This happens because expanding the fast device requires reloading the cache table for cache_create to allocate new in-core data structures that fit the new size, and the check in cache_preresume is not performed during the first resume, leading to the issue. Reproduce steps: 1. prepare component devices: dmsetup create cmeta --table "0 8192 linear /dev/sdc 0" dmsetup create cdata --table "0 65536 linear /dev/sdc 8192" dmsetup create corig --table "0 524288 linear /dev/sdc 262144" dd if=/dev/zero of=/dev/mapper/cmeta bs=4k count=1 oflag=direct 2. load a cache table of 512 cache blocks, and deliberately expand the fast device before resuming the cache, making the in-core data structures inadequate. dmsetup create cache --notable dmsetup reload cache --table "0 524288 cache /dev/mapper/cmeta \ /dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 writethrough smq 0" dmsetup reload cdata --table "0 131072 linear /dev/sdc 8192" dmsetup resume cdata dmsetup resume cache 3. suspend the cache to write out the in-core dirty bitset and hint array, leading to out-of-bounds access to the dirty bitset at offset 0x40: dmsetup suspend cache KASAN reports: BUG: KASAN: vmalloc-out-of-bounds in is_dirty_callback+0x2b/0x80 Read of size 8 at addr ffffc90000085040 by task dmsetup/90 (...snip...) The buggy address belongs to the virtual mapping at [ffffc90000085000, ffffc90000087000) created by: cache_ctr+0x176a/0x35f0 (...snip...) Memory state around the buggy address: ffffc90000084f00: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 ffffc90000084f80: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 >ffffc90000085000: 00 00 00 00 00 00 00 00 f8 f8 f8 f8 f8 f8 f8 f8 ^ ffffc90000085080: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 ffffc90000085100: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 Fix by checking the size change on the first resume.

Affected

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

3.13 ≤ v < 4.19.3243.13 ≤ v < 5.10.2303.13 ≤ v < 5.15.1723.13 ≤ v < 5.4.2863.13 ≤ v < 6.1.1173.13 ≤ v < 6.11.83.13 ≤ v < 6.123.13 ≤ v < 6.6.614.20 ≤ v < 5.4.2865.11 ≤ v < 5.15.1725.16 ≤ v < 6.1.1175.5 ≤ v < 5.10.2306.2 ≤ v < 6.6.616.7 ≤ v < 6.11.86.12 rc16.12 rc26.12 rc36.12 rc46.12 rc56.12 rc6f494a9c6b1b6dd9a9f21bbb75d9210d478eeb498
Vendor states this is fixed in 036dd6e3d2638103e0092864577ea1d091466b86 (fixed)
Vendor states this is fixed in 13ed3624c6ef283acefa4cc42cc8ae54fd4391a4 (fixed)
Vendor states this is fixed in 2222b0929d00e2d13732b799b63be391b5de4492 (fixed)
Vendor states this is fixed in 483b7261b35a9d369082ab298a6670912243f0be (fixed)
Vendor states this is fixed in c0ade5d98979585d4f5a93e4514c2e9a65afa08d (fixed)
Vendor states this is fixed in c52ec00cb2f9bebfada22edcc0db385b910a1cdb (fixed)
Vendor states this is fixed in e492f71854ce03474d49e87fd98b8df1f7cd1d2d (fixed)
Vendor states this is fixed in fdef3b94dfebd57e3077a578b6e309a2bb6fa688 (fixed)
Vendor states this is fixed in 3.13 (unaffected)
Vendor states this is fixed in 4.19.324 (unaffected)
Vendor states this is fixed in 5.10.230 (unaffected)
Vendor states this is fixed in 5.15.172 (unaffected)
Vendor states this is fixed in 5.4.286 (unaffected)
Vendor states this is fixed in 6.1.117 (unaffected)
Vendor states this is fixed in 6.11.8 (unaffected)
Vendor states this is fixed in 6.12 (unaffected)
Vendor states this is fixed in 6.6.61 (unaffected)

References (10)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/036dd6e3d2638103e0092864577ea1d091466b86
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/13ed3624c6ef283acefa4cc42cc8ae54fd4391a4
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/2222b0929d00e2d13732b799b63be391b5de4492
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/483b7261b35a9d369082ab298a6670912243f0be
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/c0ade5d98979585d4f5a93e4514c2e9a65afa08d
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/c52ec00cb2f9bebfada22edcc0db385b910a1cdb
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/e492f71854ce03474d49e87fd98b8df1f7cd1d2d
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/fdef3b94dfebd57e3077a578b6e309a2bb6fa688

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

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

CVSS

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

Quick Info

StatusMODIFIED
CWE
CWE-125

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