GHSA-PQ4X-2PRC-39CR
Vulnerability from github – Published: 2026-08-22 18:30 – Updated: 2026-08-22 18:30In 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.
{
"affected": [],
"aliases": [
"CVE-2026-74645"
],
"database_specific": {
"cwe_ids": [],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-08-22T16:16:37Z",
"severity": null
},
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm/damon/lru_sort: error out for \u003e10000 active_mem_bp\n\ndamos_quota_score() can trigger division by zero if the target value is\nzero. DAMON_LRU_SORT lets users set the target value for the hot memory\nscheme via active_mem_bp parameter. It avoids setting it as the target\nvalue if the parameter value is zero. However, it also sets the cold\nmemory scheme with a target value that is calculated as \u002710000 -\nactive_mem_bp + 2\u0027. Hence, if a user sets active_mem_bp 10002, the cold\nmemory scheme\u0027s quota goal target value can be zero. As a result,\ndivision by zero can be triggered. Fix by returning an error when the\nuser tries to start DAMON with \u003e10000 active_mem_bp parameter value.\n\nIt makes no sense to set active_mem_bp with 10002. It also requires\nmodule parameters write permission to reproduce the issue. That said, the\nconsequence is quite bad.\n\nOne reliable way to reproduce the issue is like below:\n\n # cd /sys/module/damon_lru_sort/parameters\n # echo 1000 \u003e wmarks_high\n # echo 995 \u003e wmarks_mid\n # echo 0 \u003e wmarks_low\n # echo 10002 \u003e active_mem_bp\n # echo Y \u003e enabled\n # dmesg -w\n [...]\n [ 597.421247] Oops: divide error: 0000 [#1] SMP NOPTI\n [ 597.428848] RIP: 0010:damos_quota_score+0x6f/0x480\n\nThis issue was discovered [1] by Sashiko.",
"id": "GHSA-pq4x-2prc-39cr",
"modified": "2026-08-22T18:30:27Z",
"published": "2026-08-22T18:30:27Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-74645"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/06befa61c427e74319781e6f35a364cfc32dbae8"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/e7e5e5e0dfe2ea171044c24c263efae4ee882b3f"
}
],
"schema_version": "1.4.0",
"severity": []
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.