CVE-2024-42102

Revert "mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again"

MEDIUM
4.7
CVSS Score
Published: July 30, 2024 at 07:45 AM UTC
Updated: June 17, 2026 at 07:48 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
MEDIUM4.7
Exploit prediction
EPSS 0.3%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: Revert "mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again" Patch series "mm: Avoid possible overflows in dirty throttling". Dirty throttling logic assumes dirty limits in page units fit into 32-bits. This patch series makes sure this is true (see patch 2/2 for more details). This patch (of 2): This reverts commit 9319b647902cbd5cc884ac08a8a6d54ce111fc78. The commit is broken in several ways. Firstly, the removed (u64) cast from the multiplication will introduce a multiplication overflow on 32-bit archs if wb_thresh * bg_thresh >= 1<<32 (which is actually common - the default settings with 4GB of RAM will trigger this). Secondly, the div64_u64() is unnecessarily expensive on 32-bit archs. We have div64_ul() in case we want to be safe & cheap. Thirdly, if dirty thresholds are larger than 1<<32 pages, then dirty balancing is going to blow up in many other spectacular ways anyway so trying to fix one possible overflow is just moot.

Affected

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

v ≥ 6.7.64.19.307 ≤ v < 4.19.3185.10.210 ≤ v < 5.10.2225.15.149 ≤ v < 5.15.1635.4.269 ≤ v < 5.4.2806.1.79 ≤ v < 6.1.986.6.18 ≤ v < 6.6.396.7.6 ≤ v < 6.86.8 ≤ v < 6.106.8 ≤ v < 6.9.916b1025eaa8fc223ab4273ece20d1c3a4211a95d1f12e4b3284d6c863f272eb2de0d4248ed211cf44.19.3075.10.2105.15.1495.4.2695099871b370335809c0fd1abad74d9c7c205d43f6.1.796.6.186.7.66.865977bed167a92e87085e757fffa5798f7314c9f81e7d2530d458548b90a5c5e76b77ad5e5d1c0df9319b647902cbd5cc884ac08a8a6d54ce111fc78c593d26fb5d577ef31b6e49a31e08ae3ebc1bc1eec18ec230301583395576915d274b407743d8f6c
Vendor states this is fixed in 000099d71648504fb9c7a4616f92c2b70c3e44ec (fixed)
Vendor states this is fixed in 145faa3d03688cbb7bbaaecbd84c01539852942c (fixed)
Vendor states this is fixed in 23a28f5f3f6ca1e4184bd0e9631cd0944cf1c807 (fixed)
Vendor states this is fixed in 253f9ea7e8e53a5176bd80ceb174907b10724c1a (fixed)
Vendor states this is fixed in 2820005edae13b140f2d54267d1bd6bb23915f59 (fixed)
Vendor states this is fixed in 30139c702048f1097342a31302cbd3d478f50c63 (fixed)
Vendor states this is fixed in cbbe17a324437c0ff99881a3ee453da45b228a00 (fixed)
Vendor states this is fixed in f6620df12cb6bdcad671d269debbb23573502f9d (fixed)
Vendor states this is fixed in 4.19.318 (unaffected)
Vendor states this is fixed in 5.10.222 (unaffected)
Vendor states this is fixed in 5.15.163 (unaffected)
Vendor states this is fixed in 5.4.280 (unaffected)
Vendor states this is fixed in 6.1.98 (unaffected)
Vendor states this is fixed in 6.10 (unaffected)
Vendor states this is fixed in 6.6.39 (unaffected)
Vendor states this is fixed in 6.8 (unaffected)
Vendor states this is fixed in 6.9.9 (unaffected)

References (9)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/000099d71648504fb9c7a4616f92c2b70c3e44ec
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/145faa3d03688cbb7bbaaecbd84c01539852942c
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/23a28f5f3f6ca1e4184bd0e9631cd0944cf1c807
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/253f9ea7e8e53a5176bd80ceb174907b10724c1a
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/2820005edae13b140f2d54267d1bd6bb23915f59
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/30139c702048f1097342a31302cbd3d478f50c63
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/cbbe17a324437c0ff99881a3ee453da45b228a00
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/f6620df12cb6bdcad671d269debbb23573502f9d

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
HIGH
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-369

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