CVE-2024-42102

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-42102
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-42102.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-42102
Downstream
Related
Published
2024-07-30T08:15:02Z
Modified
2025-08-09T20:01:27Z
Severity
  • 4.7 (Medium) CVSS_V3 - CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
[none]
Details

In the Linux kernel, the following vulnerability has been resolved:

Revert "mm/writeback: fix possible divide-by-zero in wbdirtylimits(), 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 wbthresh * bgthresh >= 1<<32 (which is actually common - the default settings with 4GB of RAM will trigger this). Secondly, the div64u64() is unnecessarily expensive on 32-bit archs. We have div64ul() 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.

References

Affected packages