CVE-2024-42316

mm/mglru: fix div-by-zero in vmpressure_calc_level()

State
Published
Severity
Not scored
Published
Aug 17, 2024
Updated
May 11, 2026
Reserved
Jul 30, 2024

Read the record on cve.org

Description

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

mm/mglru: fix div-by-zero in vmpressure_calc_level()

evict_folios() uses a second pass to reclaim folios that have gone through page writeback and become clean before it finishes the first pass, since folio_rotate_reclaimable() cannot handle those folios due to the isolation.

The second pass tries to avoid potential double counting by deducting scan_control->nr_scanned. However, this can result in underflow of nr_scanned, under a condition where shrink_folio_list() does not increment nr_scanned, i.e., when folio_trylock() fails.

The underflow can cause the divisor, i.e., scale=scanned+reclaimed in vmpressure_calc_level(), to become zero, resulting in the following crash:

[exception RIP: vmpressure_work_fn+101] process_one_work at ffffffffa3313f2b

Since scan_control->nr_scanned has no established semantics, the potential double counting has minimal risks. Therefore, fix the problem by not deducting scan_control->nr_scanned in evict_folios().

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 359a5e1416caaf9ce28396a65ed3e386cc5de663 to before 8de7bf77f21068a5f602bb1e59adbc5ab533509dAffected
  • 359a5e1416caaf9ce28396a65ed3e386cc5de663 to before d6510f234c7d117790397f9bb150816b0a954a04Affected
  • 359a5e1416caaf9ce28396a65ed3e386cc5de663 to before a39e38be632f0e1c908d70d1c9cd071c03faf895Affected
  • 359a5e1416caaf9ce28396a65ed3e386cc5de663 to before 8b671fe1a879923ecfb72dda6caf01460dd885efAffected
LinuxLinux
  • 6.1Affected
  • before 6.1Not affected
  • 6.1.103 through 6.1.*Not affected
  • 6.6.44 through 6.6.*Not affected
  • 6.10.3 through 6.10.*Not affected
  • 6.11 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.