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

mm/damon/lru_sort: error out for >10000 active_mem_bp

damos_quota_score() can trigger division by zero if the target value is
zero. DAMON_LRU_SORT lets users set the target value for the hot memory
scheme via active_mem_bp parameter. It avoids setting it as the target
value if the parameter value is zero. However, it also sets the cold
memory scheme with a target value that is calculated as '10000 -
active_mem_bp + 2'. Hence, if a user sets active_mem_bp 10002, the cold
memory scheme's quota goal target value can be zero. As a result,
division by zero can be triggered. Fix by returning an error when the
user tries to start DAMON with >10000 active_mem_bp parameter value.

It makes no sense to set active_mem_bp with 10002. It also requires
module parameters write permission to reproduce the issue. That said, the
consequence is quite bad.

One reliable way to reproduce the issue is like below:

# cd /sys/module/damon_lru_sort/parameters
# echo 1000 > wmarks_high
# echo 995 > wmarks_mid
# echo 0 > wmarks_low
# echo 10002 > active_mem_bp
# echo Y > enabled
# dmesg -w
[...]
[ 597.421247] Oops: divide error: 0000 [#1] SMP NOPTI
[ 597.428848] RIP: 0010:damos_quota_score+0x6f/0x480

This issue was discovered [1] by Sashiko.
Published: 2026-08-22
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel’s DAMON lru_sort module contains a logic error that triggers a division by zero when users set active_mem_bp above 10,000. In that scenario the cold memory scheme’s target value becomes zero, causing an Oops and kernel panic as shown in the provided reproduction steps. The bug is limited to users with write access to the module parameters, enabling a local attacker with root or equivalent privileges to force a denial of service.

Affected Systems

This defect affects the Linux kernel across all distributions that ship the damon_lru_sort module prior to the fix. Specific vendors are not listed by name, but any system exposing the damon_lru_sort sysfs interface and allowing parameter writes (e.g., wmarks_high, wmarks_mid, wmarks_low, active_mem_bp, enabled) is vulnerable. No version range is provided, so all affected kernel releases containing the unpatched module should be treated as impacted.

Risk and Exploitability

The bug has a high impact due to an unhandled division leading to a kernel panic. The EPSS score is not available, and the vulnerability is not yet catalogued in CISA's KEV. The attack vector is local and requires privileged write permission to the sysfs parameters, which is normally restricted to root. While the exploit is straightforward for an attacker with such access, the lack of remote entry reduces its immediate threat to environments that enforce strict user privileges.

Generated by OpenCVE AI on August 22, 2026 at 17:03 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the vendor‑supplied kernel patch that validates active_mem_bp to not exceed 10,000 and prevents division by zero.
  • Update to the latest stable Linux kernel where the bug is fixed, or rebuild the kernel with the patch applied.
  • Restrict write access to /sys/module/damon_lru_sort/parameters so that only authorized users can change this module’s configuration, and set active_mem_bp to 10000 or lower.
  • If immediate patching is not possible, disable DAMON by setting the enabled parameter to 'N' or removing the module.

Generated by OpenCVE AI on August 22, 2026 at 17:03 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 22 Aug 2026 17:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-369

Sat, 22 Aug 2026 15:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: mm/damon/lru_sort: error out for >10000 active_mem_bp damos_quota_score() can trigger division by zero if the target value is zero. DAMON_LRU_SORT lets users set the target value for the hot memory scheme via active_mem_bp parameter. It avoids setting it as the target value if the parameter value is zero. However, it also sets the cold memory scheme with a target value that is calculated as '10000 - active_mem_bp + 2'. Hence, if a user sets active_mem_bp 10002, the cold memory scheme's quota goal target value can be zero. As a result, division by zero can be triggered. Fix by returning an error when the user tries to start DAMON with >10000 active_mem_bp parameter value. It makes no sense to set active_mem_bp with 10002. It also requires module parameters write permission to reproduce the issue. That said, the consequence is quite bad. One reliable way to reproduce the issue is like below: # cd /sys/module/damon_lru_sort/parameters # echo 1000 > wmarks_high # echo 995 > wmarks_mid # echo 0 > wmarks_low # echo 10002 > active_mem_bp # echo Y > enabled # dmesg -w [...] [ 597.421247] Oops: divide error: 0000 [#1] SMP NOPTI [ 597.428848] RIP: 0010:damos_quota_score+0x6f/0x480 This issue was discovered [1] by Sashiko.
Title mm/damon/lru_sort: error out for >10000 active_mem_bp
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-22T15:32:22.645Z

Reserved: 2026-08-15T05:44:03.923Z

Link: CVE-2026-74645

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-22T16:16:37.837

Modified: 2026-08-22T16:16:37.837

Link: CVE-2026-74645

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T17:15:04Z

Weaknesses