CVE-2024-42316
Published: Aug 17, 2024
Modified: May 11, 2026
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().
| Vendor | Product | Versions |
|---|---|---|
Linux | Linux | affected 359a5e1416caaf9ce28396a65ed3e386cc5de663 - < 8de7bf77f21068a5f602bb1e59adbc5ab533509daffected 359a5e1416caaf9ce28396a65ed3e386cc5de663 - < d6510f234c7d117790397f9bb150816b0a954a04affected 359a5e1416caaf9ce28396a65ed3e386cc5de663 - < a39e38be632f0e1c908d70d1c9cd071c03faf895affected 359a5e1416caaf9ce28396a65ed3e386cc5de663 - < 8b671fe1a879923ecfb72dda6caf01460dd885ef |
Linux | Linux | affected 6.1unaffected 0 - < 6.1unaffected 6.1.103 - <= 6.1.*unaffected 6.6.44 - <= 6.6.*unaffected 6.10.3 - <= 6.10.*+1 more versions |
Security Training
Train your team to recognize and prevent security threats with our comprehensive security awareness program.
Start TrainingVulnerability Scanning
Discover vulnerabilities in your applications and infrastructure before attackers do.
Scan Now