CVEvulnerability

CVE-2024-42102

4.7 MEDIUM Published 2024-07-30 Modified 2026-06-17 Official page ↗
Status
Modified
Published
2024-07-30
Last modified
2026-06-17
Assigner
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSS 3.1 ([email protected])
4.7 MEDIUM — CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-369

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 configurations

• linux linux kernel (>= 4.19.307 < 4.19.318) • linux linux kernel (>= 5.4.269 < 5.4.280) • linux linux kernel (>= 5.10.210 < 5.10.222) • linux linux kernel (>= 5.15.149 < 5.15.163) • linux linux kernel (>= 6.1.79 < 6.1.98) • linux linux kernel (>= 6.6.18 < 6.6.39) • linux linux kernel (>= 6.8 < 6.9.9)

Related

Weakness · CWE (1)

References